我想在循环内将数组A推送到B,然后对于B的每次迭代,我需要删除数组A并创建新的数组。我在清除数组之前得到了所有数据,但是在清除之后我得到了具有空值的数组B
代码:
for (i = 0; i < XArray.length; i++) {
var pointsArray = [];
for (j = 0; j < XArray.length; j++) {
if (XArray[i] == XArray[j]) {
pointsArray.push([parseFloat(YArray[i]), parseFloat(ZArray[i])]);
}
}
dataSource.push({
name: i,
data: pointsArray
});
pointsArray.length = 0;
}
答案 0 :(得分:3)
最后一行
pointsArray.length = 0;
删除您在第一行中创建的数组中的每个元素。由于所有对象都是通过引用分配的(并且数组是对象),因此对象的data
属性现在将指向一个空数组。这是一个简化的例子:
var a = [1, 2];
var b = a;
a.length = 0;
console.log(b); // [] -- an empty array
因此,您当前的代码与
具有相同的效果dataSource.push({
name: i,
data: []
});
解决方案:删除最后一行,它将按预期工作。