为什么要用键值填充 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, etc ].
为什么我的数组中不仅仅填充了金额?
这是因为您将每个 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);
我有一个空数组,我想用从循环中获得的值填充它,例如:
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, etc ].
为什么我的数组中不仅仅填充了金额?
这是因为您将每个 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);