首頁  >  文章  >  web前端  >  javascript怎麼判斷兩個陣列是否有重複的元素

javascript怎麼判斷兩個陣列是否有重複的元素

青灯夜游
青灯夜游原創
2022-09-02 17:40:528951瀏覽

判斷步驟:1、用「new Set(陣列)」語句將兩個陣列都轉換為set集合類型;2、用「new Set([...集合1].filter(x = > 集合2.has(x))」語句取得兩個集合的交集,會傳回一個包含全部交集元素的新集合;3、用「Array.from(交集集合)」語句將集合轉為陣列類型;4.用「交集數組==[]」語句判斷交集數組是否為空數組,若是則兩個數組沒重複元素。

javascript怎麼判斷兩個陣列是否有重複的元素

本教學操作環境: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);

javascript怎麼判斷兩個陣列是否有重複的元素

可以看出此時,交集元素被包含在一個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);

javascript怎麼判斷兩個陣列是否有重複的元素

步驟4:判斷交集數組是否為空數組

  • 是空數組,則兩個數組沒有重複元素

  • 不是空數組,則兩個數組有重複元素

if(arr==[]){
	console.log("两个数组没有重复元素");
}else{
	console.log("两个数组有重复元素");
}

javascript怎麼判斷兩個陣列是否有重複的元素

(學習影片分享:web前端

以上是javascript怎麼判斷兩個陣列是否有重複的元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn