在JavaScript中向现有数组添加新值

时间:2015-08-15 16:57:30

标签: javascript

我在JavaScript中定义了一个数组列表:

var arrListContainer = [];
var emptyArray = [];
for (var i = 0; i < 5; ++i) {
    arrListContainer.push(emptyArray);
}

列表的默认值为:[[], [], [], [], []]

我想为arrListContainer[2]增加价值,所以:

arrListContainer[2].push("a");

为什么结果为[["a"], ["a"], ["a"], ["a"], ["a"]]

我不明白。我只需要[[], [], ["a"], [], []]

谢谢!

1 个答案:

答案 0 :(得分:1)

在初始化期间,您将同一个emptyArray实例推送到每个arrListContainer元素中。因此,当您稍后将“a”推入其中的第二个索引时,您将影响其余元素,因为它们都包含相同的emptyArray项。

如果您将代码更改为以下代码,那么您不会重复使用相同的emptyArray变量:

var arrListContainer = [];
for (var i = 0; i < 5; ++i) {
    arrListContainer.push([]);
}
arrListContainer[2].push("a");