雙重遍歷迴圈
太過複雜
點選檢視程式碼
let arr1 = [1, 2, 3];
let arr2 = [1, 2, 3, 4];
let hasCommonElement = false;
for (let i = 0; i < arr1.length; i++) {
for (let j = 0; j < arr2.length; j++) {
if (arr1[i] === arr2[j]) {
hasCommonElement = true;
break; // 找到相同元素後,退出內層迴圈
}
}
if (hasCommonElement) {
break; // 找到相同元素後,退出外層迴圈
}
}
console.log(hasCommonElement) // 輸出結果
集合-Set
let arr1 = [1, 2, 3]
let arr2 = [1, 2, 3, 4]
let set1 = new Set(arr1)
let hasCommonElement = arr2.some(element => set1.has(element))
console.log(hasCommonElement) // 輸出結果
ES6提供了新的資料解構Set
- 類似於陣列,但成員的值都是唯一的
- 集合實現了 iterator 介面,所以可以使用『擴充套件運算子』和『for...of』進行遍歷。
- 定義一個Set集合:
let st1=new Set()
let st2=new Set([可迭代物件])
2.集合的屬性和方法
st.size:返回集合個數
st.add(item):往集合中新增一個新元素 item,返回當前集合
st.delete(item):刪除集合中的元素,返回 boolean 值
st.has(item):檢測集合中是否包含某個元素,返回 boolean 值
st.clear():清空集合
集合轉為陣列:[...st]
合併兩個集合:[...st1, ...st2]
陣列的includes()和some()
let arr1 = [1, 2, 3]
let arr2 = [1, 2, 3, 4]
let hasCommonElement = arr1.some(element => arr2.includes(element))
console.log(hasCommonElement) // 輸出結果