初始化并推送数组中的数据

时间:2017-07-05 15:10:35

标签: javascript arrays

首先,我声明一个数组:

let arr = [];

因此,我按以下方式填充此数组:

(async function loop() {
        for(let i=timeStart; i<=timeEnd; i+=3600000)
        {
          await ExternDataProvider.getCountData(i, (i+3600000), localSearchFilters)
            .then(function(dataResult){
              arr.push(dataResult);
            })
            .catch(function(err){
            });
        }
      })();

但是,当我创建变量&#34; arr&#34;的console.log时,我得到以下结果:

output

那么为什么我没有像[2251,215]这样的东西?

3 个答案:

答案 0 :(得分:1)

如果在调用函数后console.log()数组,则控制台中将有一个空数组,但在解析数据后,控制台将刷新数组的内容。但是如果你console.log(arr[0]),它会立即显示undefined

在我看来,您应该返回您的数组(或解析它)并在另一个then中捕获已解析的值并在此console.log

中执行您的then

试试这个:

let arr = [];
setTimeout(function() {
    arr.push(1)
}, 5000);

console.log(arr[0]); // prints undefined
console.log(arr); // prints an empty array if you expand the array before 5 seconds, and it will print [1] if you re-expand it after 5 seconds

答案 1 :(得分:0)

您有[2251,215]

但是控制台以不同的方式显示它。

  

0表示0 th 位置的值。

     

1表示1 th 位置的值

答案 2 :(得分:0)

也许使用console.log(JSON.stringify(array))来实现这一目标