JavaScript推送到索引1而不是0

时间:2017-01-09 20:05:42

标签: javascript angularjs

我有一个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;
&#13;
&#13;

出于某种原因,当我尝试访问-1 & -1时,我仍然将x & y作为test.det[0]的值。当我访问索引1时,我只获得了第一个值。看起来我的所有索引都被移动但我不知道为什么会发生这种情况。

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);