【发布时间】:2019-01-21 01:27:10
【问题描述】:
我的 JS 函数有问题。为简化起见,我想用 n 个其他数组(arr2)填充一个数组(arr1)。在我的循环中,我对 arr1 中的当前位置使用计数器(出于某种原因,不能使用 arr1.push)。如果我将所有的 arr2 都记录在 arr1 中,它们都是相同的,总是最后一个添加的。所以我写了一个基本的脚本来测试它。我总是记录第一个元素并增加计数器。 我是 JS 新手,有什么我不明白的巨大误解吗?
function test(){
var arr1 = [];
var arr2 = [];
var counter=1;
arr2[0]="first";
arr2[1]="first";
arr2[2]="first";
arr1[0]=arr2;
arr1[0].forEach(function(elem){console.log(elem);});
for (var i = 0; i < 10 ; i++) {
arr2[0]=counter;
arr2[1]=counter;
arr2[2]=counter;
arr1[counter]=arr2;
arr1[0].forEach(function(elem){console.log(elem);});
counter++;
}
}
<button onclick="test()">Click</button>
【问题讨论】:
-
每次循环都必须创建一个新的
arr2。 -
... 因为
arr1[0] = arr2;不会复制arr2。
标签: javascript arrays