短影片開發,領略陣列去重這三招

云豹科技-苏凌霄發表於2024-09-07

短影片開發,領略陣列去重這三招

在短影片執行過程中,需要對資料進行多種型別的處理,其中資料去重是不可忽視的一種,以下三種陣列去重招數值得一學。

// 陣列去重 並排序方案一
function case1(arrSrc) {
  const ret = arrSrc.reduce((pre, cur) => {
    if (!pre.includes(cur)) {
      pre.push(cur)
    }
    return pre // 不要少了這一行
  }, [])
  return customSort(ret)
}

// 陣列去重並排序方案二
function case2(arrSrc) {
  const ret = Array.from(new Set(arrSrc))
  return customSort(ret)
}

// 陣列去重並排序方案三
function case3(arrSrc) {
  const ret = []
  for (const i of arrSrc) {
    if (!ret.includes(i)) {
      ret.push(i)
    }
  }
  return customSort(ret)
}

function customSort(data) {
  return data.sort((a, b) => a - b)
}

function findOneInObject(data) {
  const result = []
  for (const item of Object.entries(data)) {
    if (item[1] === 1) {
      result.push(item[0])
    }
  }
  return result
}

// 找出陣列中只出現一次的數
function case4(arrSrc) {
  const ret = arrSrc.reduce((pre, cur) => {
    if (cur in pre) {
      pre[cur] += 1
    } else {
      pre[cur] = 1
    }
    return pre // 不要少了這一行
  }, {})

  return findOneInObject(ret)
}


const arrSrc = [1, 1, 2, 2, 8, 3, 4, 4, 5, 5, 6, 8, 7, 7, 9]
console.log('case1=', case1(arrSrc))
console.log('case2=', case2(arrSrc))
console.log('case3=', case3(arrSrc))
console.log('case4=', case4(arrSrc))

以上就是短影片開發,領略陣列去重這三招, 更多內容歡迎關注之後的文章

相關文章