在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]
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短