首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组/列表长度为零,但数组不为空

数组/列表长度为零,但数组不为空
EN

Stack Overflow用户
提问于 2018-01-06 04:05:35
回答 5查看 9.9K关注 0票数 5

当我console.log我的数组时,它显示长度为零。我检查了它是一个使用返回trueArray.isArray的数组。还打印出数组值以确保它们存在,并在控制台中显示:

代码语言:javascript
复制
[]
0: "a"
1: "b"
2: "c"
3: "d"
length: 4
__proto__: Array(0)

我看到了__proto__: Array(0),我假设这意味着它是一个长度为0的数组,但是我如何使它的长度为非零,这样我就可以遍历它了?

我的一个想法是这个函数可能是异步的,但我真的不确定如何解决这个问题。

参考代码:

代码语言:javascript
复制
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循环,以读取每个值并将其用于其他用途。但是,我不能遍历数组,因为它注册为空。

EN

回答 5

Stack Overflow用户

发布于 2019-07-26 00:10:37

对于其他面临类似问题的人:

您很可能是在异步函数中填充数组。

代码语言:javascript
复制
function asyncFunction(list){
 setTimeout(function(){
    list.push('a');
    list.push('b');
    list.push('c');
    console.log(list.length); // array length is 3 - after two seconds
 }, 2000); // 2 seconds timeout
}

var list=[];
//getting data from a database
asyncFunction(list);
console.log(list.length) //array is length zero - after immediately
console.log(list) // console will show all values if you expand "[]" after two seconds
票数 6
EN

Stack Overflow用户

发布于 2019-08-12 17:48:38

我有同样的问题,当我记录变量快照时,如下所示,变量在执行完大部分逻辑后被记录下来,因为它稍后可用,这就是为什么数组的值不可访问的原因。

代码语言:javascript
复制
let admins = []
adminRef.once('value',(snapshot)=>{
   console.log(snapshot);
   snapshot.forEach(data=>{
   admins.push(data.key); 
 })
 })

因此对其进行了更改,以便在快照变量可用时执行其下的逻辑

代码语言:javascript
复制
 adminRef.once('value',(snapshot)=>{
        if(snapshot){
            console.log(snapshot);
            snapshot.forEach(data=>{
            admins.push(data.key); 
        })}
票数 1
EN

Stack Overflow用户

发布于 2018-01-06 04:11:41

我需要看到更多你的代码,但这是你想要的。

代码语言:javascript
复制
var arr = [1, 3, 5, 6];
console.log(arr.length);
for (var i = 0; i < arr.length; i++){
  console.log(arr[i]);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48120547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档