js 数组去重 原

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({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券