我有一个JavaScript变量,我尝试使用以下for
循环在另一个函数中初始化它:
var test = {
det: [{x: -1, y: -1}]
};
for (var i = 0; i < 4; i++) {
test.det.push({x:10+i, y:10});
}
console.log(test.det);
&#13;
出于某种原因,当我尝试访问-1 & -1
时,我仍然将x & y
作为test.det[0]
的值。当我访问索引1时,我只获得了第一个值。看起来我的所有索引都被移动但我不知道为什么会发生这种情况。
答案 0 :(得分:2)
Array#push
会在当前最后一项之后添加另一项。要重新初始化使用作业=
:
var test = {
det: [{x: -1, y: -1}]
};
for (var i = 0; i < 4; i++) {
test.det[i] = ({x:10+i, y:10});
}
console.log(test);
或者只是清除数组,然后使用Array#push
:
var test = {
det: []
};
for (var i = 0; i < 4; i++) {
test.det.push({x:10+i, y:10});
}
console.log(test);