数组交集javascript

quanzhankaifa

温馨提示:这篇文章已超过239天没有更新,请注意相关的内容是否还可用!

数组交集javascript

数组交集是指找出两个或多个数组中共同存在的元素。在JavaScript中,可以使用多种方法来实现数组交集。

一种常见的方法是使用双重循环遍历数组,逐个比较数组中的元素,将共同存在的元素添加到一个新的数组中。示例代码如下:

function intersection(arr1, arr2) {

var result = [];

for (var i = 0; i < arr1.length; i++) {

for (var j = 0; j < arr2.length; j++) {

if (arr1[i] === arr2[j]) {

result.push(arr1[i]);

break;

}

}

}

return result;

}

var arr1 = [1, 2, 3, 4, 5];

var arr2 = [4, 5, 6, 7, 8];

var arr3 = [5, 6, 7, 8, 9];

var commonElements = intersection(arr1, arr2);

console.log(commonElements); // 输出 [4, 5]

commonElements = intersection(arr1, arr3);

console.log(commonElements); // 输出 [5]

上述代码中,我们定义了一个名为`intersection`的函数,该函数接受两个数组作为参数。在函数内部,我们创建了一个空数组`result`来存储共同存在的元素。

接下来,我们使用两个嵌套的`for`循环遍历`arr1`和`arr2`中的所有元素。在每次循环中,我们使用条件语句`if`来判断当前元素是否在另一个数组中存在。如果存在,则将该元素添加到`result`数组中,并使用`break`语句跳出内部循环,以避免重复添加。

我们返回`result`数组作为交集结果。

上述示例代码仅适用于两个数组的交集。如果需要找出多个数组的交集,可以通过多次调用`intersection`函数来实现。例如,我们可以使用以下代码找出`arr1`、`arr2`和`arr3`的交集:

var commonElements = intersection(arr1, intersection(arr2, arr3));

console.log(commonElements); // 输出 [5]

在实际开发中,还可以使用其他方法来实现数组交集。例如,可以使用`filter`方法结合`includes`方法来筛选出共同存在的元素。示例代码如下:

function intersection(arr1, arr2) {

return arr1.filter(function(element) {

return arr2.includes(element);

});

}

var arr1 = [1, 2, 3, 4, 5];

var arr2 = [4, 5, 6, 7, 8];

var arr3 = [5, 6, 7, 8, 9];

var commonElements = intersection(arr1, arr2);

console.log(commonElements); // 输出 [4, 5]

commonElements = intersection(arr1, arr3);

console.log(commonElements); // 输出 [5]

上述代码中,我们使用`filter`方法对`arr1`数组进行筛选,只保留那些在`arr2`数组中存在的元素。`filter`方法接受一个回调函数作为参数,该回调函数返回`true`或`false`来决定是否保留当前元素。在回调函数中,我们使用`includes`方法来判断当前元素是否在`arr2`数组中存在。

需要注意的是,`includes`方法在ES7中引入,如果要在较旧的浏览器中使用该方法,可能需要进行兼容性处理。

数组交集是指找出两个或多个数组中共同存在的元素。在JavaScript中,可以使用双重循环遍历数组或使用`filter`方法结合`includes`方法来实现数组交集。根据实际需求,选择合适的方法来实现数组交集可以提高代码的效率和可读性。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码