查找包含 JavaScript 中重复条目的数组的交集
我们需要编写一个 JavaScript 函数,它接收两个数字数组,我们称之为 arr1 和 arr2。
该函数应该基于这两个输入数组构建一个第三个数组,其中包含 arr1 和 arr2 共有的所有元素。
注意,如果这两个数组中存在多个相同的元素,则我们必须考虑该元素的所有此类实例。
例如 −
如果输入数组为 −
const arr1 = [1, 2, 2, 4, 4, 5, 6]; const arr2 = [3, 2, 4, 2, 4, 9];
则输出数组应为 −
const output = [2, 2, 4, 4];
示例
以下是代码 −
const arr1 = [1, 2, 2, 4, 4, 5, 6];
const arr2 = [3, 2, 4, 2, 4, 9];
const findIntersection = (arr1 = [], arr2 = []) => {
const map = new Map();
for (const el of arr2) {
const count = map.get(el) || 0;
map.set(el, count + 1);
};
return arr1.filter(el => {
let count = map.get(el);
if (count) {
map.set(el, --count);
return true;
}
return false;
});
};
console.log(findIntersection(arr1, arr2));输出
以下是控制台输出 −
[2, 2, 4, 4]
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP