数组去重第一版

2018-10-11  本文已影响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)
上一篇下一篇

猜你喜欢

热点阅读