判斷步驟:1、用「new Set(陣列)」語句將兩個陣列都轉換為set集合類型;2、用「new Set([...集合1].filter(x = > 集合2.has(x))」語句取得兩個集合的交集,會傳回一個包含全部交集元素的新集合;3、用「Array.from(交集集合)」語句將集合轉為陣列類型;4.用「交集數組==[]」語句判斷交集數組是否為空數組,若是則兩個數組沒重複元素。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
判斷兩個陣列是否有重複的元素,換個說法,就是判斷兩個陣列是否有交集。
在javascript中,可以利用set物件的has()方法來配合陣列的filter()來進行判斷。
實作步驟:
步驟1:將兩個陣列都轉換為set集合類型
let a=[1, 2, 3]; let b=[3, 5, 2]; newA = new Set(a); newB = new Set(b);
步驟2:利用has()和filter()函數取得兩個集合的交集
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集合中傳回。
步驟3:利用Array.from方法將集合轉為數組類型
#Array.from方法用於將兩類物件轉換為真正的陣列:類似數組的物件(array-like object)和可遍歷(iterable)的物件(包括ES6 新增的資料結構Set 和Map)。
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); let arr = Array.from(intersectionSet); console.log(arr);
步驟4:判斷交集數組是否為空數組
是空數組,則兩個數組沒有重複元素
不是空數組,則兩個數組有重複元素
if(arr==[]){ console.log("两个数组没有重复元素"); }else{ console.log("两个数组有重复元素"); }
(學習影片分享:web前端)
以上是javascript怎麼判斷兩個陣列是否有重複的元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!