繁体   English   中英

为什么不能在Node中复制阵列的一部分?

[英]Why can't I copy a part of my array in Node?

我试图建立一个数组,其中一部分重复两次。 它由三篇文章(在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();
}

这个版本怎么样?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM