我试图建立一个数组,其中一部分重复两次。它由三篇文章(在articleArray [0]至articleArray [2]中)组成,每篇文章都有文章中每个单词的列表(例如articleArray [1] [1]列出了该文章中的每个单词)。我想将最后一部分克隆到articleArray [1] [2],但是由于某种原因,它将无法正常工作?我正在使用for循环
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]中的每个值(最后一个除外)均为空。为什么不复制我的价值观?
最佳答案
您反复用空数组覆盖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();
}