javascript - 为什么我无法在 Node 中复制数组的一部分?

标签 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 < articleArray[x][1].length; y++) {
            articleArray[x][2] = [];
            articleArray[x][2][y] = articleArray[x][1][y];
        }
    }

运行后,出于某种原因,articleArray[1][2] 中的每个值除了最后一个值外都是空的。为什么它不复制我的值(value)观?

最佳答案

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

关于javascript - 为什么我无法在 Node 中复制数组的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36501377/

相关文章:

javascript - 自耕农 : jit-grunt error with grunt serve

javascript - 用函数定义函数

javascript - 如何在prototype js中使用触摸事件?

javascript - 固定 header 脚本函数 floatHead 正在添加一个额外的 thead

javascript - Vaadin JavaScript 卸载事件监听器未触发

arrays - VBA 带或不带括号的调用 Sub 或 Function 之间的根本区别是什么

javascript - MySQL 数据库包含编码和未编码的引号,它破坏了 javascript

Java 4 : Sorting an array by 2 values

Java Array 删除最后存储的元素

node.js - 如何停止 node.js 表达 'npm start' 的应用程序