首页 > web前端 > js教程 > 如何在 JavaScript 中高效查找两个数组的交集?

如何在 JavaScript 中高效查找两个数组的交集?

Mary-Kate Olsen
发布: 2024-12-27 12:44:10
原创
169 人浏览过

How Can I Efficiently Find the Intersection of Two Arrays in JavaScript?

JavaScript 中的轻松数组交集

数组交集是编程中的基本操作。给定两个数组,交集返回一个新数组,其中仅包含两个数组共有的元素。在 JavaScript 中,实现这个无需库的操作非常简单。

解决方案

在 JavaScript 中实现数组交集的最简单、最简洁的方法是利用Array.prototype.filterArray.prototype.includes。这种方法避免了复杂循环或外部依赖的需要。

const intersection = (array1, array2) => {
  return array1.filter((value) => array2.includes(value));
};
登录后复制

或者,对于可能不支持箭头函数的旧浏览器,您可以使用以下代码:

const intersection = (array1, array2) => {
  return array1.filter(function(n) {
    return array2.indexOf(n) !== -1;
  });
};
登录后复制

示例

为了说明此解决方案的有效性,请考虑以下内容示例:

console.log(intersection([1, 2, 3], [2, 3, 4, 5])); // [2, 3]
登录后复制

交集函数按预期正确返回包含公共元素 [2, 3] 的数组。

注意

值得注意的是 Array.prototype.includesArray.prototype.indexOf 使用严格相等 (===) 比较数组中的元素,这意味着如果数组包含复杂对象,则比较将仅匹配对象引用,而不匹配其内容。要处理此用例,请考虑使用 Array.prototype.some 指定自定义比较逻辑。

以上是如何在 JavaScript 中高效查找两个数组的交集?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板