JS数组去重方式

2017-10-20  本文已影响0人  骑骑小飞猪

1.ES6去重

{
  function uniqe(arr) {
    return Array.from(new Set(arr))
  }

  console.log(uniqe([1,1,12,2,2,3]))
}

2.使用indexOf()方法

{
  /**
   * 
   * @param {*} indexOf(value,fromIndex)
   * 返回指定字符串在字符串中首次出现的位置
   * 如果没有出现的话,该方法返回-1
   */
  function uniqe(arr) {
    var ret = []
    for (var i=0;i<arr.length;i++) {
      if(ret.indexOf(arr[i]) == -1) {
        ret.push(arr[i])
      }
    }
    return ret;
  }
  console.log(uniqe([1,1,12,2,2,3]))
}

3.数组forEach方法

{
  function uniqe(arr) {
    var ret = []
    arr.forEach(function(element, idx, arr) {
      if(arr.indexOf(element) == idx) {
        ret.push(element)
      }
    }, undefined)
    return ret
  } 
  console.log(uniqe([1,1,12,2,2,1,3]))
}

4.添加原型方法

{
  Array.prototype.uniqe = function(){
    var ret = []
    var end;
    this.sort()
    console.log(this)
    end=this[0]
    ret.push(this[0])

    for (var i=1;i<this.length;i++){
      if (this[i] != end) {
        ret.push(this[i])
        end = this[i]
      }
    }
    return ret
  }
  console.log([1,1,12,2,1,2,3].uniqe())
}
上一篇 下一篇

猜你喜欢

热点阅读