为什么我不能在Node中复制我的数组的一部分?

时间:2016-04-08 13:51:55

标签: javascript arrays node.js

我试图设置一个数组,其中一个部分重复两次。它由三篇文章组成(在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]中的每个值都是空的,除了最后一个,由于某种原因。为什么不复制我的价值观?

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();
});