数组去重

数组去重的方法

一般方法

var a= [1,2,3,4,3,2,1];
function led(arr) {
  let hash={}
  let result=[]
  for(let i =0; i

缺点:

  1. 因为对象的key是string类型,所以对于数组里包含相同数字的字符串不能够识别,例如会把‘2’和2认定为一样。
  2. 同样数组中包含对象的话,会将其转变为string

ES6的Set方法

function led(arr) {
  return Array.from(new Set(arr))
}
var b =[1,2,3,3,4,2,1]
var c = [...new Set(b)]
console.log(c)//[1,2,3,4]
var d = 'sdfgjhjddd'
var e = [...new Set(d)].join('')
console.log(e)//'sdfgjh'

非常简单

map方法

let arr= [1,2,3,4,5,3,2,4,1];
const result = [];
const map = new Map();
for (let v of arr) {
    if (!map.has(v)) {
        map.set(v, true);
        result.push(v);
    }
}
console.log(result); // -> [1, 2, 3, 4, 5]

arr.inclue方法

let arr= [1,2,3,4,5,3,2,4,1];
const result = [];
for (let v of arr) {
    if (!result.includes(v)) {
        result.push(v);
    }
}
console.log(result); // -> [1, 2, 3, 4, 5]

你可能感兴趣的:(数组去重)