js 數組去重

es5 filter寫法 json

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>this

可是IE6-IE8不支持 數組的indexOf方法es5

也能夠下面的方法,這種方法兼容性比較好。prototype

<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());排序

相關文章
相關標籤/搜索