美文网首页
JS数组去重方式

JS数组去重方式

作者: 骑骑小飞猪 | 来源:发表于2017-10-20 20:14 被阅读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())
    }
    

    相关文章

      网友评论

          本文标题:JS数组去重方式

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