溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

es6如何求兩個(gè)數(shù)組的交集

發(fā)布時(shí)間:2022-04-21 19:03:14 來源:億速云 閱讀:931 作者:iii 欄目:web開發(fā)

這篇文章主要介紹“es6如何求兩個(gè)數(shù)組的交集”,在日常操作中,相信很多人在es6如何求兩個(gè)數(shù)組的交集問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”es6如何求兩個(gè)數(shù)組的交集”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

實(shí)現(xiàn)方法:1、使用“new Set(數(shù)組)”語句將兩個(gè)數(shù)組都轉(zhuǎn)換為set集合類型;2、使用“new Set([...集合1].filter(x => 集合2.has(x)))”語句獲取兩個(gè)集合的交集即可,會(huì)返回一個(gè)包含全部交集元素的新集合。

本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。

在es6中,可以利用set對(duì)象的has() 方法配合數(shù)組的filter()來求兩個(gè)數(shù)組的交集。

  • Set是ES6新提供的數(shù)據(jù)結(jié)構(gòu),類似于數(shù)組,但是本身沒有重復(fù)值。利用這一特性,我們可以將數(shù)組轉(zhuǎn)為Set類型進(jìn)行去重,然后使用Array.from方法將其再轉(zhuǎn)為數(shù)組。

  • Set has() 方法指示 Set 對(duì)象是否包含指定的值。如果指定的值存在,則返回真,否則返回假。

let a=[1, 2, 3];
let b=[3, 5, 2];
newA = new Set(a);
newB = new Set(b); 
let intersectionSet = new Set([...newA].filter(x => newB.has(x)));
console.log(intersectionSet);

es6如何求兩個(gè)數(shù)組的交集

可以看出此時(shí),交集元素被包含在一個(gè)set集合中返回,可利用Array.from方法將集合轉(zhuǎn)為數(shù)組類型

  • Array.from方法用于將兩類對(duì)象轉(zhuǎn)為真正的數(shù)組:類似數(shù)組的對(duì)象(array-like object)和可遍歷(iterable)的對(duì)象(包括 ES6 新增的數(shù)據(jù)結(jié)構(gòu) Set 和 Map)。

let intersectionSet = Array.from(new Set([...newA].filter(x => newB.has(x))));
console.log(intersectionSet);

es6如何求兩個(gè)數(shù)組的交集

擴(kuò)展知識(shí):求并集/差集

let a = new Set([1, 2, 3]);
let b = new Set([3, 5, 2]); 

// 并集
let unionSet = new Set([...a, ...b]);
//[1,2,3,5]

// ab差集
let differenceABSet = new Set([...a].filter(x => !b.has(x)));

到此,關(guān)于“es6如何求兩個(gè)數(shù)組的交集”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

es6
AI