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

chat

写了两个,当然还有一些其他的方式,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>

版权声明:
作者:东明兄
链接:https://blog.crazyming.com/note/485/
来源:CrazyMing
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
JavaScript数组去重的两种实现方式
写了两个,当然还有一些其他的方式,es6的也很方便 <script> var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 11, 12, 13, 13, 14, 15]; ……
<<上一篇
下一篇>>
chat