Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  javascript  >  正文 js 数组去除重复项的五种方法

js 数组去除重复项的五种方法

发布时间:2015-01-16   编辑:www.jquerycn.cn
本文分享下js 去除数组中重复项的五种方法,有兴趣研究这方面内容的朋友,可以作个参考。

1,js 数组去重复项的第一种方法,也是最笨的方法。

Array.prototype.unique1 = function () {
    var r = new Array();
    label:for(var i = 0, n = this.length; i < n; i++) {
        for(var x = 0, y = r.length; x < y; x++) {
            if(r[x] == this[i]) {
                continue label;
            }
        }
        r[r.length] = this[i];
    }
    return r;
}

2,js 数组去重复项的第二种方法,使用正则表达式。

Array.prototype.unique2 = function () {
    return this.sort().join(",,").replace(/(,|^)([^,]+)(,,\2)+(,|$)/g,"$1$2$4").replace(/,,+/g,",").replace(/,$/,"").split(",");
}

3,js 数组去重复项的第三种方法:
使用对象的【hasOwnProperty】方法

Array.prototype.unique3 = function() {
    var temp = {}, len = this.length;
    for(var i=0; i < len; i++)  {
        var tmp = this[i];
        if(!temp.hasOwnProperty(tmp)) {
            temp[this[i]] = "my god";
        }
    }
  
    len = 0;
    var tempArr=[];
    for(var i in temp) {
        tempArr[len++] = i;
    }
    return tempArr;
}

4,js 数组去重复项的第四种方法:先排序,前项比后项。简单实用型。

Array.prototype.unique4 = function () {
    var temp = new Array();
      this.sort();
      for(i = 0; i < this.length; i++) {
          if( this[i] == this[i+1]) {
            continue;
        }
          temp[temp.length]=this[i];
      }
      return temp;  
}

5,js 数组去重复项的第五种方法,有点hash表的感觉。

Array.prototype.unique5 = function() {
    var res = [], hash = {};
    for(var i=0, elem; (elem = this[i]) != null; i++)  {
        if (!hash[elem])
        {
            res.push(elem);
            hash[elem] = true;
        }
    }
    return res;
}

哪一种适合你呢?谁是你百里挑一的命中注定,看你的选择了,哈。
希望以上js 数组去重复项的五种方法,对大家有所帮助。

您可能感兴趣的文章:
js 数组去除重复项的五种方法
php 数组去重的方法参考(一维数组去重、二维数组去重)
php数组去重(一维、二维数组去重)的简单示例
js数组删除重复值的四种方法
js 过滤数组重复值的代码分享(六种方法)
js 删除数组的几种方法
详解JavaScript的splice()方法
php数组去重的函数代码示例
去除js数组中的重复元素的三种方法
PHP二维数组去重的实例解析

[关闭]