我试图设置一个数组,其中一个部分重复两次。它由三篇文章组成(在articleArray [0]到articleArray [2]中),每篇文章都列出了文章中的每个单词(例如articleArray [1] [1]列出了该文章中的每个单词)。我想将最后一部分克隆到articleArray [1] [2],但由于某种原因它不会起作用?我正在使用for-loop
for (var x=0; x < articleCount; x++) {
for (var y=0; y < articleArray[x][1].length; y++) {
articleArray[x][2] = [];
articleArray[x][2][y] = articleArray[x][1][y];
}
}
运行之后,articleArray [1] [2]中的每个值都是空的,除了最后一个,由于某种原因。为什么不复制我的价值观?
答案 0 :(得分:5)
您反复使用空数组覆盖articleArray[x][2]
。您需要移动
articleArray[x][2] = [];
在内循环之外的一级:
for (var x=0; x < articleCount; x++) {
articleArray[x][2] = [];
for (var y=0; y < articleArray[x][1].length; y++) {
articleArray[x][2][y] = articleArray[x][1][y];
}
}
请注意,使用slice
克隆数组可以简化这一过程:
for (var x=0; x < articleCount; x++) {
articleArray[x][2] = articleArray[x][1].slice();
}
答案 1 :(得分:0)
这个版本怎么样?
articleArray.forEach(arr => {
arr[2] = arr[1].slice();
});