天天看點

js數組相加相減

數組相加

const arr1 = [1, 3, 1, '1', 4, 6, 3]
const arr2 = [1, 7, 9, 10, 3, 2, 4, 4, 1]
// 第一種方法: 使用 concat方法,set資料結構,展開運算符
function addArray(arr1, arr2, isRepeat) {
  // 合并數組
  let arr = arr1.concat(arr2)
  // 去重操作
  if (isRepeat) {
    arr = [...new Set(arr)]
  }
  return arr
}
console.log('使用 concat方法,set資料結構,展開運算符', addArray(arr1, arr2, true))

// 第二種方法: 使用push方法,展開運算符
function addArray1(arr1, arr2, isRepeat) {
  // 合并數組
  let arr = []
  arr.push(...arr1, ...arr2)
  console.log(arr)
  // 去重操作
  if (isRepeat) arr = [...new Set(arr)]
  return arr
}
console.log('使用push方法,展開運算符', addArray1(arr1, arr2))
           
使用 concat方法,set資料結構,展開運算符 [
  1, 3, '1', 4, 6,
  7, 9, 10,  2
]
使用push方法,展開運算符 [
  1, 3, 1, '1', 4,  6,
  3, 1, 7, 9,   10, 3,
  2, 4, 4, 1
]
           
數組去重這裡隻使用了set資料結構去重,關于數組去重的更多方法可以參考我的這篇文章 數組去重

數組相減

const arr1 = [1, 2, 3, 5, 6, 7, 1, 2, 3]
const arr2 = [7, 8, 9, 1, 4, 7, 2, 6, 10]
// arr1 - arr2 ---> [3,5](去重)
// arr2 - arr1  --> [8,9,4,10](去重)
function subArray(arr1, arr2, isRepeat) {
  let arr = []
  arr1.forEach(element => {
    if (!arr2.includes(element)) arr.push(element)
  })
  if (isRepeat) arr = [...new Set(arr)]
  return arr
}
console.log(subArray(arr1, arr2, true))
console.log(subArray(arr2, arr1, true))

           
[ 3, 5 ]
[ 8, 9, 4, 10 ]
           

繼續閱讀