实现一个unique 方法实现数组去重

161 阅读1分钟

使用includes

const array = [1,5,2,3,4,2,3,1,3,4]

function unique(array) {
  const newArray = []
  array.forEach(item => {
    newArray.includes(item) ? null :  newArray.push(item)
  });
  return newArray;
}
console.log(unique(array))

function setUnique(array) {
  return Array.from(new Set(array))
}

console.log(setUnique(array))

使用 Map

const array = [1,5,2,3,4,2,3,1,3,4]
function mapUnique(array) {
  let map = new Map();
  let _array = new Array();  // 数组用于返回结果
  for (let i = 0; i < array.length; i++) {
    if(map.has(array[i])) {  // 如果有该key值
      map.set(_array[i], true); 
    } else { 
      map.set(array[i], false);   // 如果没有该key值
      _array.push(array[i]);
    }
  } 
  return _array ;
}
console.log(mapUnique(array))
```js

#### 使用reduce

```js
const array = [1,5,2,3,4,2,3,1,3,4]
function unique(array) {
  return array.reduce((prve, item) =>  prve.includes(item) ? prve :  [...prve, item], [])
}
console.log(unique(array))

new Set

const array = [1,5,2,3,4,2,3,1,3,4]
function unique(arr) {
 return [...new Set(arr)] 
}
console.log(unique(array))