在JavaScript中向现有数组添加新值
我在JavaScript中定义了一个数组列表:在JavaScript中向现有数组添加新值,javascript,Javascript,我在JavaScript中定义了一个数组列表: var arrListContainer = []; var emptyArray = []; for (var i = 0; i < 5; ++i) { arrListContainer.push(emptyArray); } 为什么结果是[“a”],[“a”],[“a”],[“a”],[“a”],[“a”] 我不明白。我只需要[]、[]、[“a”]、[]、[]、[]就行了。 谢谢大家! 如果要使arrListContainer中
var arrListContainer = [];
var emptyArray = [];
for (var i = 0; i < 5; ++i) {
arrListContainer.push(emptyArray);
}
为什么结果是[“a”],[“a”],[“a”],[“a”],[“a”],[“a”]
我不明白。我只需要<代码>[]、[]、[“a”]、[]、[]、[]就行了。
谢谢大家! 如果要使
arrListContainer
中的每个索引指向同一个对象实例,则需要在循环中创建新的emptyArray
s(或直接推送一个文本)
在初始化过程中,将相同的emptyArray实例推送到每个arrListContainer元素中。因此,当您稍后将“a”推入它的第二个索引时,您将影响其余的元素,因为它们都包含相同的emptyArray项 如果将代码更改为以下格式,则不重复使用相同的emptyArray变量:
var arrListContainer = [];
for (var i = 0; i < 5; ++i) {
arrListContainer.push([]);
}
arrListContainer[2].push("a");
var arrListContainer=[];
对于(变量i=0;i<5;++i){
arrListContainer.push([]);
}
arrListContainer[2]。推送(“a”);
var arrListContainer=[];
var emptyArray=[];
对于(变量i=0;i<5;++i){
var emptyArray=[];
如果(i==2){
空的。推(“a”);
}
arrListContainer.push(清空数组);
}
对于(变量i=0;i<5;++i){
console.log(arrListContainer[i]);
}
这是你想要的吗?在您的js文件或JSIDdle中试用,并查看控制台的结果。您可以将问题复制到一个代码段或创建一个JSIDdle吗?尝试这样做:
arrListContainer.push([])代码>
var arrListContainer = [], i;
for (i = 0; i < 5; ++i) {
arrListContainer.push([]);
}
var foo = [],
bar = foo;
foo[2] = 'baz';
// what is bar[2]?
bar[2]; // "baz"
// because
foo === bar; // true
var arrListContainer = [];
for (var i = 0; i < 5; ++i) {
arrListContainer.push([]);
}
arrListContainer[2].push("a");
var arrListContainer = [];
var emptyArray = [];
for (var i = 0; i < 5; ++i) {
var emptyArray = [];
if(i === 2){
emptyArray.push("a");
}
arrListContainer.push(emptyArray);
}
for(var i=0; i< 5; ++i){
console.log(arrListContainer[i]);
}