美文网首页
数组去重第一版

数组去重第一版

作者: 阿龙哟 | 来源:发表于2018-10-11 09:29 被阅读0次

    基本思路:

    1.es6 Set数据结构

    var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
    function unique(arr){
      return Array.from(new Set(arr))
    }
    
    b=unique(array)
    console.log(b)
    

    2.内外双重比较

    var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
    function unique(arr){
      var result = []
      for(var i=0,len=arr.length;i<len;i++){
        for(var j=0,res=result.length;j<res;j++){
          if(arr[i] === result[j]){
            break
          }
        }
        if(j===res){
          result.push(arr[i])
        }
      }
      return result
    }
    
    b=unique(array)
    console.log(b)
    

    3.内外比较splice法

    var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
    function unique(arr){
        for(var i=0;i<arr.length;i++){
            for(var j=i+1;j<arr.length;j++){
                if(arr[i] === arr[j]){
                    arr.splice(j,1)
                    j--
                }
            }
        }
        return arr
    }
    
    b=unique(array)
    console.log(b)
    

    4.indexOf 法

    var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
    function unique(arr){
        var res = []
        for(var i=0;i<arr.length;i++){
            if(res.indexOf(arr[i]) === -1){
                res.push(arr[i])
            }
        }
        return res
    }
    
    b=unique(array)
    console.log(b)
    

    类似方法

    var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
    function unique(arr){
        return arr.filter(function(item,index,array){
            return array.indexOf(item) === index
        })
    }
    
    b=unique(array)
    console.log(b)
    

    类似方法

    var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
    function unique(arr){
       var result = []
       arr.forEach(function(item){
           if(result.indexOf(item) === -1)
            result.push(item)
       })
    
       return result
    }
    
    b=unique(array)
    console.log(b)
    

    5.排序去重法

    var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
    function unique(arr){
      var result = []
      var newArr = arr.concat().sort()
      var temp
      for(var i=0;i<newArr.length;i++){
          if(!i || temp !== newArr[i]){
              result.push(newArr[i])
          }
          temp = newArr[i]
      }
      return result
    }
    
    b=unique(array)
    console.log(b)
    

    6.对象方法

      var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
    function unique(arr){
      var obj = {}
      return arr.filter(function(item,index,array){
          return obj.hasOwnProperty(item)?false:obj[item]=true
      })
    }
    
    b=unique(array)
    console.log(b)
    

    类似

    var array = [1,1,1,2,3,3,3,4,4,5,5,5,6]
    function unique(arr){
      var obj = {}
      for(var i=0;i<arr.length;i++){
          if(!obj[arr[i]]){
               obj[arr[i]]=true
          }
      }
      return Object.keys(obj).map(function(item){
          return parseInt(item)
      })
    }
    
    b=unique(array)
    console.log(b)
    

    相关文章

      网友评论

          本文标题:数组去重第一版

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