繁体   English   中英

为什么用键值填充javascript数组

[英]Why is javascript array being populate with key values

我有一个空数组,我想用从循环中获取的值填充:

 var testArray = []; var data = [ {values:[3,4,3,4]}, {values:[3434]}, {values:[3,43,4]} ]; for ( i = 0; i < data.length; i++ ) { amounts = data[i].values.length; console.log(amounts); testArray.push(amounts); } console.log(testArray); 

当我console.log() 'amounts'变量时,我得到了所有整数的列表,但是如果我console.log() 'testArray'变量,则得到了一个键值数组,例如testArray = [ 0:126,等等]。

为什么我的数组中不仅填充了数量?

这是因为您将每个valueslength存储为amounts ,然后将这些amounts推入testArray因此结果将是长度而不是值的数组。 如果您尝试直接推入values ,则将得到一个二维数组,您应该做的就是使用concat,如下所示:

 var testArray = []; var data = [ {values:[3,4,3,4]}, {values:[3434]}, {values:[3,43,4]} ]; for ( i = 0; i < data.length; i++ ) { amounts = data[i].values; // amounts should be the values array not its length testArray = testArray.concat(amounts); // concat testArray with the current values array and store it back into testArray to continue accumulatig the result } console.log(testArray); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM