在 javascript 中实现数组交集的最简单、无库的代码是什么?我想写
intersection([1,2,3], [2,3,4,5])
并得到
[2, 3]
使用Array.prototype.filter和的组合Array.prototype.includes:
Array.prototype.filter
Array.prototype.includes
const filteredArray = array1.filter(value => array2.includes(value));
对于较旧的浏览器,带有Array.prototype.indexOf和不带有箭头功能:
Array.prototype.indexOf
var filteredArray = array1.filter(function(n) { return array2.indexOf(n) !== -1; });
注意!两者.includes和.indexOf内部都使用 比较数组中的元素===,因此如果数组包含对象,它将仅比较对象引用(而不是它们的内容)。如果要指定自己的比较逻辑,请Array.prototype.some改用。
.includes
.indexOf
===
Array.prototype.some