在多个 JavaScript 数组中查找公共元素
在 JavaScript 中,比较数组以匹配元素并仅检索公共值是经常遇到的任务。考虑以下挑战:给定多个具有字符串值的数组,查找并显示所有数组中相同的元素。
为了实现这一点,我们可以利用 JavaScript 中函数式编程的概念。下面介绍了如何在不使用外部库的情况下高效地完成此操作:
var result = arrays.shift().filter(function(v) { return arrays.every(function(a) { return a.indexOf(v) !== -1; }); });
此代码利用 filter() 方法,该方法使用传递给定条件的元素创建一个新数组。这里的条件是每个元素都应该出现在每个数组中。 every() 方法通过检查所有数组是否包含正在评估的元素来确保这一点。
例如,给定以下数组:
var arr1 = ['apple', 'orange', 'banana', 'pear', 'fish', 'pancake', 'taco', 'pizza']; var arr2 = ['taco', 'fish', 'apple', 'pizza']; var arr3 = ['banana', 'pizza', 'fish', 'apple'];
结果将be:
['apple', 'fish', 'pizza']
这个解决方案相对简洁,可以处理各种长度的数组,并且不会引入任何重复项。需要注意的是,数组应按升序排序以获得最佳性能。
以上是## 如何在多个 JavaScript 数组中高效查找公共元素?的详细内容。更多信息请关注PHP中文网其他相关文章!