在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;iarrayCop.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);