您好,登錄后才能下訂單哦!
這篇文章主要介紹“es6如何求兩個數組的交集”,在日常操作中,相信很多人在es6如何求兩個數組的交集問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”es6如何求兩個數組的交集”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
實現方法:1、使用“new Set(數組)”語句將兩個數組都轉換為set集合類型;2、使用“new Set([...集合1].filter(x => 集合2.has(x)))”語句獲取兩個集合的交集即可,會返回一個包含全部交集元素的新集合。
本教程操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。
在es6中,可以利用set對象的has() 方法配合數組的filter()來求兩個數組的交集。
Set是ES6新提供的數據結構,類似于數組,但是本身沒有重復值。利用這一特性,我們可以將數組轉為Set類型進行去重,然后使用Array.from方法將其再轉為數組。
Set has() 方法指示 Set 對象是否包含指定的值。如果指定的值存在,則返回真,否則返回假。
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);
可以看出此時,交集元素被包含在一個set集合中返回,可利用Array.from方法將集合轉為數組類型
Array.from方法用于將兩類對象轉為真正的數組:類似數組的對象(array-like object)和可遍歷(iterable)的對象(包括 ES6 新增的數據結構 Set 和 Map)。
let intersectionSet = Array.from(new Set([...newA].filter(x => newB.has(x)))); console.log(intersectionSet);
擴展知識:求并集/差集
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)));
到此,關于“es6如何求兩個數組的交集”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。