JavaScript 中的轻松数组交集
数组交集是编程中的基本操作。给定两个数组,交集返回一个新数组,其中仅包含两个数组共有的元素。在 JavaScript 中,实现这个无需库的操作非常简单。
解决方案
在 JavaScript 中实现数组交集的最简单、最简洁的方法是利用Array.prototype.filter 和 Array.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.includes 和Array.prototype.indexOf 使用严格相等 (===) 比较数组中的元素,这意味着如果数组包含复杂对象,则比较将仅匹配对象引用,而不匹配其内容。要处理此用例,请考虑使用 Array.prototype.some 指定自定义比较逻辑。
以上是如何在 JavaScript 中高效查找两个数组的交集?的详细内容。更多信息请关注PHP中文网其他相关文章!