JavaScript 如何找到存在于任意两个给定数组中的每个元素
在本文中,我们将学习如何找到存在于给定两个数组中的每个元素。要找到存在于任意两个给定数组中的每个元素,您可以合并这些数组,并移除任何重复的元素。
- 使用 Set
- 使用循环
- 使用 filter() 和 concat()
方法1:使用Set
Set是一个集合,其中的元素是唯一的,即不会重复。我们将两个数组的所有元素添加到Set中,然后返回Set。
示例: 在此示例中,我们将看到使用JavaScript的Set方法来找到存在于任意两个给定数组中的每个元素。
// Function which takes an array as argument
const print = (arr1,arr2) => {
// Creating a set with elements of arr1
const set = new Set(arr1)
// Adding elements of arr2
arr2.forEach(element => {
set.add(element)
});
// Returning resultant array
return set
}
// Input array
const arr1 = [10, 20, 30, 40, 50]
const arr2 = [10,20,34,32,11]
// Printing the result
console.log(print(arr1,arr2))
输出
Set(8) { 10, 20, 30, 40, 50, 34, 32, 11 }
方法2:使用循环
在这种方法中,我们将选择一个数组,然后在第二个数组上运行循环,并检查该数组的元素是否存在于第一个数组中。如果元素已经存在,则跳过,否则将其添加到第一个数组中。
示例: 在这个示例中, 我们将使用Javascript循环来找到任何一个给定数组中存在的元素。
// Javascript program to find all element
// present in any of two given arrays
// Function which takes an array as argument
const print = (arr, arr2) => {
// A counter for adding element
let k = arr.length
// Checking every element and
// adding required element
arr2.forEach(element => {
if (arr.indexOf(element) == -1) {
arr[k] = element
k++
}
});
// Returning resultant array
return arr
}
// Input array
const arr1 = [1, 2, 3, 4, 5]
const arr2 = [1, 2, 3, 4]
// Printing the result
console.log(print(arr1, arr2))
输出
[ 1, 2, 3, 4, 5 ]
方法3:使用filter()和concat()函数
在这个方法中,我们将使用concat()函数合并数组,并使用filter()函数删除重复的元素。
示例:
function findElementsInArr(arr1, arr2) {
let mergedArray = arr1.concat(arr2);
let uniqueEle = mergedArray.filter(function (element, index, self) {
return self.indexOf(element) === index;
});
return uniqueEle;
}
let arr1 = [1, 2, 3, 4];
let arr2 = [3, 4, 5, 6];
let result = findElementsInArr(arr1, arr2);
console.log(result);
输出
[ 1, 2, 3, 4, 5, 6 ]
极客教程