es5 filter写法
var a = [1,3,4,5,1,2,3,3,4,8,90,3,0,5,4,0,25]; var b = a.filter(function(elem,index,Array){ return index ===Array.indexOf(elem) }) b.sort(function(a,b){return a-b}) //排序 console.log(b);//[0,1,2,3,4,5,8,25,90]
<script> Array.prototype.unique = function() { var newArr = []; for(var i = 0;i<this.length;i++) { if(newArr.indexOf(this[i]) == -1) { newArr.push(this[i]); } } return newArr; }; var arr = [1,3,1,2]; console.log(arr.unique()); </script>
但是IE6-IE8不支持 数组的indexOf方法
也可以下面的方法,这种方法兼容性比较好。
<script> Array.prototype.unique =function(){ var res = []; var json ={}; for(var i=0;i<this.length;i++){ if(!json[this[i]]){ res.push(this[i]); json[this[i]]=1; } } return res; } var arr =[1,5,7,5,2,7]; console.log(arr.unique());
(adsbygoogle = window.adsbygoogle || []).push({});