javascript - javascript中数组交集的最简单代码

标签 javascript data-structures intersection

在 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/

相关文章:

javascript - 只要找到相似的条目,它就应该增加

javascript - jQuery UI 类名

c++ - 二叉搜索树计算节点的坐标

java - 按键比较两个 HashMap 并返回频率不同的键

c++ - 模数为哈希表中的地址创建错误的 int?

python - 在 python 字典中查找键以获取相应字典值中元素的交集

javascript - 如何在提交按钮之前添加复选框?

javascript - 如何仅对 IE 应用 css 样式

ios - UIBezierPath 路径的交集

unity3d - 寻找线段-矩形交点