查詢包含 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