我有 3 个名为“localCodes”、“standardCodes”和“specialCodes”的数组。我试图确认所有 3 个数组中是否出现任何不同的值。
最有效的方法是什么?
编辑:
下面是我正在使用的代码,我只是觉得这里有一种更简单的方法,但我没有得到
示例数据集:
localCodes = [1,2,3,4]
standardCodes = [10,2,11,44]
specialCodes = [99,98,89,2]
有了这个集合,我想返回 true,因为 3 个数组中的每一个都找到了 2。
var longest = localCodes
var longFlag = 'local'
if(standardCodes.length > longest.length){
longest = standardCodes
longFlag = 'standard'
}
if(specialCodes.length > longest.length){
longest = specialCodes
longFlag = 'special'
}
for(l=0; l<longest.length; l++){
if(longFlag == 'local'){
//code here
}
if(longFlag == 'standard'){
//code here
}
if(longFlag == 'special'){
//code here
}
}
您可以将所有列表映射到集合的集合,然后通过调用
intersection
来减少它们。
const
localCodes = [1,2,3,4],
standardCodes = [10,2,11,44],
specialCodes = [99,98,89,2];
const getIntersectingValues = (...arr) => [...arr
.map(arr => new Set(arr))
.reduce((acc, cur) => acc.intersection(cur))];
const sharedValues = getIntersectingValues(
localCodes,
standardCodes,
specialCodes
);
console.log(sharedValues);