Javascript array.push 似乎在 for 循环中不起作用

Javascript array.push does not seem to work in a for loop

我在 nodeJS 中遇到了非常奇怪的行为。我正在尝试初始化一个空数组,然后在 for 循环中填充该数组。请参阅下面的简化代码。

let arr = []
for (let i = 0; i < 20; i++) {
    console.log(arr)
    arr.push(`hello`)
}
console.log(arr)

这在循环的每个实例和之后只输出一个空数组。

[]
[]
[]
[]
...
[]

我一辈子都弄不明白这是为什么。我假设它与作用域有关,但是当我对它进行直接分配时,该数组仍然可以在循环内访问。任何帮助将不胜感激!

编辑:这是我苦苦挣扎的完整代码。 arr.push 似乎没有将新网址推送到 arr。谢谢

const getRandImgs = async (ct) => {
    console.log('At the top of getRandImgs')
    try {
        let arr = []
        if (ct > 30) {
            arr = await getRandImgs(30)
            console.log(arr)
            ct -= 30
        }

        const config = {
            params: {
                collections: '483251',
                count: ct
            },
            headers: {
                Authorization: 'Client-ID XXXXXXX'
            }
        }
        const res = await axios.get('https://api.unsplash.com/photos/random', config)

        for (const d of res.data) {
            console.log(d.urls.full)
            console.log(arr)
            arr.push[d.urls.full]
            console.log(arr)
        }
        return arr
    } catch (e) {
        console.log(e)
    }
}

你的线路

arr.push[d.urls.full]

应该是

arr.push(d.urls.full)