在Javascript中迭代嵌套数组的浅拷贝

在Javascript中迭代嵌套数组的浅拷贝,javascript,arrays,loops,nested,Javascript,Arrays,Loops,Nested,我有一个嵌套数组: let array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; 我需要迭代每个嵌套数组的第一个和第二个元素,并更新对原始数组的更改。我如何做到这一点?我尝试了许多选项,但结果不会更新原始数组。例如: let arrayCop = []; for (let i = 0; i <= 1; i++) { for (let j = 0; j <= 1; j++) { arrayCop.push(array[i][j]);

我有一个嵌套数组:

let array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
我需要迭代每个嵌套数组的第一个和第二个元素,并更新对原始数组的更改。我如何做到这一点?我尝试了许多选项,但结果不会更新原始数组。例如:

let arrayCop = [];
for (let i = 0; i <= 1; i++) {
   for (let j = 0; j <= 1; j++) {
      arrayCop.push(array[i][j]);
   }
}

arrayCop.forEach(...);
让arrayCop=[];

对于(设i=0;i您可以使用Array.prototype.map函数 我需要迭代每个嵌套元素的第一个和第二个元素 数组并更新对原始数组的更改

不确定您所说的对原始数组的更新更改是什么意思,但是

编辑 好的,在看过其他答案后,我相信我得到了你想要的

function parse(array) {
    array.forEach(function(element) { element.slice(0, 2) })
}

如果我理解正确,您希望将原始阵列更改为:

[[1, 2], [4, 5], [7, 8]]
如果是这样,这就可以做到:

array.forEach(element => element.splice(2))

使用
flatMap
和解构

let数组=[[1,2,3],[4,5,6],[7,8,9];
让arrayCop=array.flatMap(([first,second])=>[first,second]);
log(arrayCop)
让数组=[[1,2,3],[7,4,1],[2,4,3]; console.log(数组); //仅在每个文件的第一项和第二项中检查重复项
对于(i=0;i
arrayCop.forEach(…);
yes,其中
..
是您的尝试,因为您没有更改代码中的原始数组,只访问
array[i][j]
。因此,
array
将保持原样。arrayCop.forEach(element=>{if(arrayCop.indexOf(element)function parse(array) { array.forEach(function(element) { element.slice(0, 2) }) }
[[1, 2], [4, 5], [7, 8]]
array.forEach(element => element.splice(2))
let array = [[1, 2, 3], [7, 4, 1], [2, 4, 3]];

console.log(array);

// checks for duplicates just in first and second item of every file
for (let i = 0; i <= 1; i++) {
    for (let j = 0; j <= 2; j++) {
        array[i].forEach((element, index) => {
            if ((i !== j) && index <= 1 &&
            (array[j].indexOf(element) >= 0 && array[j].indexOf(element) <= 1)) {
                array[i][index] = 'x';
            }
        })
    }
}

console.log(array);