当前位置: 代码迷 >> 综合 >> js数组交集、并集、差集
  详细解决方案

js数组交集、并集、差集

热度:87   发布时间:2024-03-07 01:33:11.0

数组交集

1. 利用filter + indexOf

var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9], arr2 = [1, 3, 5];
var intersection = arr1.filter(function (val) {return arr2.indexOf(val) > -1;
})
console.log(intersection);   // [1, 3, 5]

但这种方法针对是value值比较简单的Number(不包括NaN)、String、Boolean类型, 因为indexOf 本质上还是使用 === 来判断。

2. 利用Set 

function intersect (a, b) {var bSet = new Set(b);return Array.from(a.filter(function (val) {return bSet.has(val);}));
}
var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, NaN], arr2 = [1, 3, 5, NaN];
var intersection = intersect (arr1, arr2);
console.log(intersection);   // [1, 3, 5, NaN]

 可以解决NaN

 

  相关解决方案