首頁 > web前端 > js教程 > 如何有效率地找出兩個 JavaScript 陣列的交集、差集和對稱差?

如何有效率地找出兩個 JavaScript 陣列的交集、差集和對稱差?

Barbara Streisand
發布: 2024-12-29 03:39:10
原創
828 人瀏覽過

How Can I Efficiently Find the Intersection, Difference, and Symmetric Difference of Two JavaScript Arrays?

在 JavaScript 中尋找陣列差異:交集、差異和對稱差異

在 JavaScript 中,逐個元素比較數組可能很乏味。為了簡化這個過程,讓我們來探索一個強大的工具:Array.prototype.includes()。

Intersection

為了取得兩個陣列共有的值,我們可以使用filter()。例如:

let intersection = arr1.filter(x => arr2.includes(x));
登入後複製

這會產生交集:[2, 3].

差異

要辨識僅存在於arr1 中的值,我們可以過濾掉arr2 中存在的元素。

let difference = arr1.filter(x => !arr2.includes(x));
登入後複製

這會導致差異:[1].

對稱差異

為了取得僅在arr1 或arr2 中找到的元素,我們將兩個差異結合起來:

let symDifference = arr1.filter(x => !arr2.includes(x))
                        .concat(arr2.filter(x => !arr1.includes(x)));
登入後複製

這會產生對稱差異:[1]。

正如@Joshaven 所強調的那樣Potter,這些方法可以直接添加到Array.prototype 中以增強靈活性:

Array.prototype.diff = function(arr2) { 
  return this.filter(x => !arr2.includes(x)); 
}
登入後複製

然後,您可以直接在數組上使用它:

[1, 2, 3].diff([2, 3]) // [1]
登入後複製

以上是如何有效率地找出兩個 JavaScript 陣列的交集、差集和對稱差?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板