数组去重

作者: 凛冬已至_123 | 来源:发表于2018-06-28 11:11 被阅读0次

    数组去重的方法

    一般方法

    var a= [1,2,3,4,3,2,1];
    function led(arr) {
      let hash={}
      let result=[]
      for(let i =0; i<a.length; i++){
        hash[arr[i]]=true
      }
      for(let key in hash){
        result.push(Number(key))
        
      }
      return result
    }
    

    缺点:

    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]
    

    相关文章

      网友评论

        本文标题:数组去重

        本文链接:https://www.haomeiwen.com/subject/qpxgyftx.html