当我使用console.log输出我的数组时,它显示长度为零。我检查了一下它是一个数组,使用了Array.isArray
,返回值为true
。我还打印了数组的值以确保它们存在,并在控制台中显示:
[]
0: "a"
1: "b"
2: "c"
3: "d"
length: 4
__proto__: Array(0)
我看到 __proto__: Array(0)
,我认为这意味着它是一个长度为 0 的数组,但如何使它成为非零长度,以便我可以遍历它?
我想到的一个想法是这个函数可能是异步的,但我不太确定如何解决这个问题。
参考代码:
var list=[]
//getting data from a database
snapshot.forEach(function (node) {
list.push(node.val())
console.log(node.val()) //values print out
})
console.log(list) //array is length zero
我基本上想在这段代码后添加一个for循环,以便读取每个值并用于其他事情。但是,我无法遍历这个数组,因为它被注册为空。
__proto__
中显示的长度是原型对象的长度,而不是 this 对象的长度。 - Barmarlength: 4
显示了该数组的长度。 - Barmar