const arr = [12, 23, 12, 15, 25, 23, 25, 14, 16]

方法一:

const arr = [12, 23, 12, 15, 25, 23, 25, 14, 16]

const res1 = [...new Set(arr)]
const res2 = Array.from(new Set(arr))

方法二:

const arr = [12, 23, 12, 15, 25, 23, 25, 14, 16]

function sort(arr) {
  const obj = {}
  arr.forEach(item => {
    obj[item] = null;
  })
  return Object.keys(obj).map(item => +item)
}
console.log(fn(arr))

方法三:

const arr = [12, 23, 12, 15, 25, 23, 25, 14, 16]

function fn(arr) {
  for (let i = 0, len = arr.length - 1; i < len; i++) {
    const item = arr[i]
    const arr1 = arr.slice(i + 1)

    if (arr1.includes(item)) arr[i] = null
  }
  return arr.filter(item => item !== null)
}
console.log(fn(arr))

方法四:

const arr = [12, 23, 12, 15, 25, 23, 25, 14, 16]

arr.sort((a, b) => (a - b))
function sort(arr) {
  const res = []
  for (let i = 0, len = arr.length; i < len; i++) {
    if (arr[i] !== arr[i + 1]) {
      res.push(arr[i])
    }
  }
  return res;
}