JavaScript 如何创建两个数组的交集数组
本文将尝试通过一些编码示例来了解如何使用两个数组的交集值来创建一个数组。
例如:
arr1 = [1, 3, 5, 7, 9, 10, 14, 15]
arr2 = [1, 2, 3, 7, 10, 11, 13, 14]
result_arr = [1, 3, 7, 10, 14]
方法1:
- 我们将看到解决问题陈述的本地方法,即如何使用两个数组的交集值创建一个数组。
- 此方法使用两个简单的for循环,分别在之前创建的两个数组上运行,并使用if语句检查两个数组的值。
- 在检查两个数组的值后,我们实际将值推入新数组中,并从函数中返回该数组,然后在浏览器控制台中显示结果。
示例:
Javascript
let first_array = [1, 3, 5, 7, 9];
let second_array = [2, 3, 4, 5, 6, 9];
let res_arr = (first_array, second_array) => {
let new_array = [];
for (let i = 0; i < first_array.length; i++) {
for (let j = 0; j < second_array.length; j++) {
if (first_array[i] === second_array[j]) {
new_array.push(first_array[i]);
}
}
}
return new_array;
};
console.log("Array obtained is :");
console.log(res_arr(first_array, second_array));
输出:
Array obtained is :
[ 3, 5, 9 ]
方法2:
- 在这个方法中,我们将尝试将一个更好的方法可视化,与我们在之前的示例中所看到的相比,我们将尽量避免之前所需的额外开销。
- 本示例中,我们将在JavaScript中使用filter()方法以及Arrays的includes()方法,这将根据它们在数组中的包含情况最终过滤元素。
- 在从两个数组中过滤出元素后,我们将在控制台中显示数组作为输出。
示例:
JavaScript
let first_array = [1, 3, 5, 7, 9];
let second_array = [2, 3, 4, 5, 6, 9];
let new_array = first_array.filter(
(element) => second_array.includes(element));
console.log("Array obtained is :");
console.log(new_array);
输出:
Array obtained is :
[ 3, 5, 9 ]
方法3:
- 在此方法中,我们将探讨JavaScript中使用Set的另一种方法。
- 在这里,我们将将两个数组转换为集合,然后使用简单的一个for循环和一个if语句。我们会检查两个集合本身的值,然后将相似的值推送到新数组中。
- 该新数组将从一个函数返回,并以输出的形式打印在浏览器的控制台中。
示例:
Javascript
let res_arr = (arr1, arr2) => {
let first_array_set = new Set(arr1);
let second_array_set = new Set(arr2);
let new_array = [];
for (let element of second_array_set) {
if (first_array_set.has(element)) {
new_array.push(element);
}
}
return new_array;
};
let first_array = [1, 3, 5, 7, 9];
let second_array = [2, 3, 4, 5, 6, 9];
console.log("Array obtained is: ");
console.log(res_arr(first_array, second_array));
输出:
Array obtained is:
[ 3, 5, 9 ]
极客教程