比較兩個陣列中是否有相同的元素

齐嘉树發表於2024-07-09

雙重遍歷迴圈

太過複雜

點選檢視程式碼
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』進行遍歷。
  1. 定義一個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) // 輸出結果

相關文章