在 javascript 中实现数组交集的最简单、无库的代码是什么?我要写
intersection([1,2,3], [2,3,4,5])
得到
[2, 3]
最佳答案
使用 Array.prototype.filter
的组合和 Array.prototype.includes
:
const filteredArray = array1.filter(value => array2.includes(value));
对于旧版浏览器,使用 Array.prototype.indexOf
并且没有箭头功能:
var filteredArray = array1.filter(function(n) {
return array2.indexOf(n) !== -1;
});
注意! .includes
和 .indexOf
都在内部使用 ===
比较数组中的元素,所以如果数组包含对象,它只会比较对象引用资料(不是他们的内容)。如果要指定自己的比较逻辑,请使用 Array.prototype.some
相反。
关于javascript - javascript中数组交集的最简单代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11581360/