JS陣列取交集 並集

2021-10-20 19:52:05 字數 1415 閱讀 1467

如果陣列中僅是字串和數值

var a =[1

,2,3

], b =[2

,3,4

,5];

// 交集---[2,3]

var intersection = a.

filter

(item

=> b.

indexof

(item)

>-1

)// 並集---[1,2,3,4,5]

var union= a.

concat

(b.filter

(item

=> a.

indexof

(item)

===-1)

)

交集的邏輯就是將b在a裡邊過濾一下,只需要a裡邊找不到的即可。並集的邏輯類似,使用concat方法將a裡邊沒有的資料合併到a裡邊,因此在過濾b的時候要判斷a裡邊能不能找到索引。

var a =[1

,2,3

], b =[2

,3,4

,5];

// 交集---[2,3]

var intersection =a.

filter

(item

=>

newset

(b).

has(item)

)// 並集---[1,2,3,4,5]

var union= array.

from

(new

set(

[...a,

...b]

))

這裡使用了es6語法中的set型別,其類似於陣列,但成員都是唯一,因此很方便與去重。而且還能夠使用其內建的方法。

在獲取並集的時候,使用了陣列的from方法,將set型別轉為陣列。

var c =[,

];var d =[,

];// 交集---

var intersection =

;for

(let i =

0; i< c.length; i++)}

}// 並集

var union =

[...c,

...d]

for(

let i =

0; i< c.length; i++))

,1)}

}}

交集的邏輯是雙重迴圈去判斷物件內的唯一值是否相等,然後將相等的資料放到陣列中。並集的邏輯類似,也是雙重迴圈去判斷二者,但是在剛開始就將兩個陣列進行展開,因此在判斷兩者有一樣的資料時,要通過splice方法去刪除當前值。

js陣列交集 並集 差集

1.利用filter indexof var arr1 1,2,3,4,5,6,7,8,9,nan arr2 1,3,5,nan var intersection arr1.filter function val console.log intersection 1,3,5 但這種方法針對是valu...

陣列取交集 並集與補集

交集 集合論中,設a,b是兩個集合,由所有屬於集合a且屬於集合b的元素所組成的集合,叫做集合a與集合b的交集 intersection 記作a b。並集給定兩個集合a,b,把他們所有的元素合併在一起組成的集合,叫做集合a與集合b的並集,記作a b,讀作a並b。補集一般指絕對補集,即一般地,設s是乙個...

Postgresql取並集,交集,差集

關鍵字union 例子 query1 union query2 關鍵字intersect 例子 query1 intersect query2 關鍵字except 例子 query1 except query2 其中query1和query2的select子句中欄位個數必須相同,且對應的資料型別必須...