# 怎么用JS求兩個數組的交集
在JavaScript中,求兩個數組的交集(即找出兩個數組中共同存在的元素)是常見的需求。以下是幾種實現方法:
## 1. 使用filter和includes方法
```javascript
function getIntersection(arr1, arr2) {
return arr1.filter(item => arr2.includes(item));
}
const arrA = [1, 2, 3];
const arrB = [2, 3, 4];
console.log(getIntersection(arrA, arrB)); // 輸出: [2, 3]
function getIntersectionFast(arr1, arr2) {
const set = new Set(arr2);
return arr1.filter(item => set.has(item));
}
const intersection = (a, b) => a.filter(x => new Set(b).has(x));
注意事項:
- 上述方法會保留重復元素,如需去重可在外層再套用new Set()
- 時間復雜度:普通方法O(n2),使用Set優化為O(n)
- 對引用類型元素需要特殊處理(比較內存地址)
選擇哪種方法取決于具體場景和數據規模。對于小型數組,第一種方法最直觀;處理大型數組時推薦使用Set優化版本。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。