// 数组去重 并排序方案一
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))

CUI_PING
42 声望3 粉丝