gpt4 book ai didi

javascript - 无论索引如何,检查数组是否包含共享元素

转载 作者:行者123 更新时间:2023-11-29 21:40:57 24 4
gpt4 key购买 nike

我想检查两个数组是否共享元素而不考虑顺序。

给定

array A: ['hello', 'how', 'are', 'you']

array B: ['how', 'are', 'hello']

将返回“hello”、“how”和“are”的匹配项

似乎有用于 PHP 的东西,array_intersect() ( Check if array contains elements having elements of another array ),但没有用于 JavaScript。

如果值在对象中,我会使用 in,但它们不是:

if (key in obj) {

}

我也可以对两个数组执行 array.sort(),但不能保证两个数组具有相同数量的值。因此,即使它们被排序,比较的索引也会关闭。

我如何在 JavaScript 中执行此操作?

最佳答案

您可以使用 filter检查另一个数组中是否存在相同的元素。

var arr1 = ['hello', 'how', 'are', 'you'];
var arr2 = ['how', 'are', 'hello'];

var commonElements = arr1.filter(function(e) {
return arr2.indexOf(e) > -1;
});

console.log(commonElements);

你也可以在数组原型(prototype)上定义这个函数

Array.prototype.intersection = function(arr) {
return this.filter(function(e) {
return arr.indexOf(e) > -1;
});
};

var arr1 = ['hello', 'how', 'are', 'you'],
arr2 = ['how', 'are', 'hello'];

var commonElements = arr1.intersection(arr2);
console.log(commonElements);

关于javascript - 无论索引如何,检查数组是否包含共享元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32961643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com