日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js寻找两个数组的差集_js求两个数组的交集|并集|差集|去重

發布時間:2025/4/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js寻找两个数组的差集_js求两个数组的交集|并集|差集|去重 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

let a = [1,2,3], b= [2, 4, 5];

1.差集

(a-b 差集:屬于a但不屬于b的集合)? a-b = [1,3]

(b-a 差集:屬于b但不屬于a的集合)? b-a = [4,5]

1) 第一種解決方案: filter+includes

let difference = a.concat(b).filter(v => !a.includes(v))

console.log(difference)//[4,5]

2) 第二種解決方案:Set+Array.from

ES6提供了新的數據結構Set。它類似于數組,但是成員的值都是唯一的,沒有重復的值。

Set本身是一個構造函數,用來生成Set數據結構。

Set類似于數組,區別在于它所有的成員都是唯一的,不會有重復的值。

Set是一個新的數據結構。

Array.from() 方法可以將 Set結構轉為數組。

由于key不能重復,所以,在Set種,沒有重復的key。要創建一個Set,需要提供一個Array作為輸入,或者直接創建一個空Set。

var s1 = new Set(); //空Set

var s2 = new Set([1,2,3]); //含1,2,3

重復元素在Set種自動被過濾:

var s = new Set([1,2,3,3,'3']);

s;//Set {1,2,3,"3"}

向Set加入值的時候,不會發生類型轉換,所以3和'3'是不同的值。

注意數字3和字符串'3'是不同的元素。

new Set的作用是可以將傳入的Array去重。

Array.from() 的作用是可以將 Set結構轉為數組。

let aSet = newSet(a)

let bSet= newSet(b)

let difference= Array.from(new Set(a.concat(b).filter( v => !aSet.has(v) )))

console.log(difference)//[4,5]

3) 第三種解決方案:filter+indexOf

2.交集

1) 第一種解決方案:filter+includes

總結

以上是生活随笔為你收集整理的js寻找两个数组的差集_js求两个数组的交集|并集|差集|去重的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。