如何在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>