Javascript 为什么可以';我不能在节点中复制数组的一部分吗?

Javascript 为什么可以';我不能在节点中复制数组的一部分吗?,javascript,arrays,node.js,Javascript,Arrays,Node.js,我正在尝试设置一个数组,其中一个部分重复两次。它由三篇文章组成(从articleArray[0]到articleArray[2]),每个文章都有一个文章中每个单词的列表(例如articleArray[1][1]列出了该文章中的每个单词)。我想将最后一部分克隆到articleArray[1][2],但由于某种原因它无法工作?我用的是for循环 for (var x=0; x < articleCount; x++) { for (var y=0; y < articleArra

我正在尝试设置一个数组,其中一个部分重复两次。它由三篇文章组成(从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];
        }
    }
for(var x=0;x

运行之后,由于某种原因,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];
    }
}

您正在使用空数组重复覆盖
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];
    }
}

这个版本怎么样

articleArray.forEach(arr => {
  arr[2] = arr[1].slice();
});

这个版本怎么样

articleArray.forEach(arr => {
  arr[2] = arr[1].slice();
});

每次通过循环,您都将
articleArray[x][2]
初始化为一个新的空数组!每次通过循环,您都将
articleArray[x][2]
初始化为一个新的空数组!