[英]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,等等]。
为什么我的数组中不仅填充了数量?
这是因为您将每个values
的length
存储为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.