JavaScript数组去重的两种实现方式

Daming 2018-06-07
0条评论 908 次浏览
Daming 2018-06-070条评论 908 次浏览

写了两个,当然还有一些其他的方式,es6的也很方便

<script>
    var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 11, 12, 13, 13, 14, 15];

    /**
     * 利用对象属性不能重复的的原理
     * @returns {Array}
     */
    Array.prototype.unique = function () {
       console.time("testObj");
        var temp = {};
        var res = [];
        var len = this.length;
        for (var i = 0; i < len; i++) {
            if (!temp[this[i]]) {
                temp[this[i]]="unique";
               res.push( this[i]);
            }
        }
      console.timeEnd("testObj");
        return res;
    }

    /**
     * 使用indexof去重
     * @returns {Array}
     */
    Array.prototype.unique2 = function () {
        console.time("testIndexOf");
        var temp = {};
        var res = [];
        var len = this.length;
        for (var i = 0; i < len; i++) {
          if(res.indexOf(this[i])===-1){
              res.push(this[i]);
          }
        }
        console.timeEnd("testIndexOf");
        return res;
    }

</script>

0

发表评论

电子邮件地址不会被公开。