【发布时间】:2020-10-14 06:44:21
【问题描述】:
如何获取 3 个数组中的共同元素?
例如,我有 3 个数组
arr1 = [10,20,30,40]
arr2 = [20,30,50,60]
arr3 = [70,40,30,20]
结果应该是[20,30]
【问题讨论】:
-
到目前为止你有什么尝试?
标签: arrays typescript
如何获取 3 个数组中的共同元素?
例如,我有 3 个数组
arr1 = [10,20,30,40]
arr2 = [20,30,50,60]
arr3 = [70,40,30,20]
结果应该是[20,30]
【问题讨论】:
标签: arrays typescript
您可以将reduce() 与filter() 和includes() 方法一起使用
有关数组函数的更多信息,请参阅
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
var arr1 = [10,20,30,40];
var arr2 = [20,30,50,60];
var arr3 = [70,40,30,20];
var data = [arr1, arr2, arr3];
var result = data.reduce((a, b) => a.filter(c => b.includes(c)));
console.log(result);
【讨论】:
基本上它的 A ∩ B ∩ C 等于 (A ∩ B) ∩ C 您可以使用基本的 ES6 过滤器
arr1 = [10,20,30,40]
arr2 = [20,30,50,60]
arr3 = [70,40,30,20]
intersactionArr1Arr2 = arr1.filter(x => arr2.includes(x))
intersactionArr1Arr2Arr3 = intersactionArr1Arr2.filter(x => arr3.includes(x))
// Which results [20, 30]
【讨论】: