检查多个数组中的值是否相等

问题描述 投票:0回答:1

我有 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
    }
}
javascript
1个回答
0
投票

您可以将所有列表映射到集合的集合,然后通过调用

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);

© www.soinside.com 2019 - 2024. All rights reserved.