gpt4 book ai didi

javascript - 如何找到两个多维数组中的共同值

转载 作者:行者123 更新时间:2023-11-28 17:04:21 24 4
gpt4 key购买 nike

问题是我有两个二维数组,所以需要获取共同值 两个都。那么我如何检查两个数组中的公共(public)值。

我已经编写了嵌套 for 循环来执行此操作,在这里我 添加一些虚拟数组数据以用于显示目的:

 var arr1 = [[0,0],[0,1],[0,2],[1,0][1,1],[1,2],[2,0],[2,2]];
var arr2 = [[0,1],[0,0],[2,2]];

var commonValueIndex = [];
for(var i=0; i<arr1.length; i++){
for(var j=0; j<arr2.length; j++){
if(arr1[i][j] == arr2[i][j]){
commonValueIndex.push([i,j]);
}
}
}

需要找到共同的值并将它们的索引存储在另一个数组中。请提出任何建议。

最佳答案

除了近乎二次的方法之外,您还可以使用字符串化数组获取映射,并在单个循环中检查其他数组。然后只需过滤这些项目,而无需在其他数组中找到相同的值。

var array1 = [[0, 0], [0, 1], [0, 2], [1, 0][1, 1], [1, 2], [2, 0], [2, 2]],
array2 = [[0, 1], [0, 0], [2, 2]],
map = new Map(array2.map((v, i) => [JSON.stringify(v), i])),
indices = array1
.map((v, i) => map.has(JSON.stringify(v)) && [i, map.get(JSON.stringify(v))])
.filter(Boolean),
common = array1.filter(v => map.has(JSON.stringify(v)));

console.log(indices);
console.log(common);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何找到两个多维数组中的共同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56281064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com