去除js数组中的重复元素的三种方法

发布时间:2020-09-17编辑:脚本学堂
本文介绍下,用于去除js数组中重复元素的三种方法,各有不同,有需要的朋友,可以作个参考,好好研究下。

如何在js中去除数组的重复元素呢?
且看本文提供的三种方法。

//方法1,通常的方法去除数组中的重复元素
<script type="text/javascript">
    var    inArray = function(arr, elt) {
            for(var i = 0, len = arr.length; i < len; i++) {
                if(arr[i] === elt) {
                    return true;
                }
            }
            return false;
        };
    var    unique = function(arr) {
            if(arr.length < 2) return arr;
            var i = 0, len = arr.length; re = [];
            for(; i < len; i++) {
                if(!this.inArray(re, arr[i])) {
                    re.push(arr[i]);
                }
            }
            return re;
        };
var arr = [9,1,'3',8,7,7,6,6,5,7,8,8,7,4,3,1]; // 这里的3 和 '3' 类型是不一致的,.,
alert(unique(arr));
</script>

//方法2,如果不需要考虑类型的问题,还可以这样。
<script type="text/javascript">
var uniq = function (arr) {    
var a = [],        
    o = {},        
    i,        
    v,        
    len = arr.length;    
    if (len < 2) {        
        return arr;    
    }    
    for (i = 0; i < len; i++) {        
        v = arr[i];        
        if (o[v] !== 1) {            
            a.push(v);            
            o[v] = 1;       
        }    
    }    
    return a;
}
var arr = [9,1,'3',8,7,7,6,6,5,7,8,8,7,4,3,1]; 
alert(uniq(arr));
</script>

//方法3,正则表达式去除重复元素方式
<script type="text/javascript">
oldArray   =   [1,2,1,3,3,4,5,5,6,7,2,2,9,8,9] 
var   str   =   oldArray.join( "   "); 
var   reg   =   /([^   ]+)(.*)   /1/g; 
while(str.match(reg))str=str.replace(reg, "$1$2 ") 
alert(str.split( "   ")); 
</script>