數組去重方法總結

1、利用indexOf
普通函數方式:數組

function unique(arr){
    var newArr=[];
    for(var i=0;i<arr.length;i++){
        if(newArr.indexOf(arr[i])===-1){
            newArr.push(arr[i]);
        }
    }
    return newArr
}
var array=[1,1,2,3,4,4,5,5,6];
unique(array);// [1, 2, 3, 4, 5, 6]

原型方法:函數

Array.prototype.unique=function(){
    var newArr=[this[0]];
    for(var i=0;i<this.length;i++){
        if(this.indexOf(this[i])===i){
            newArr.push(this[i]);
        }
    }
    return newArr
};
var array=[1,1,2,3,4,4,5,5,6];
array.unique();

2、利用Array.filterthis

var oldArr=[1,1,2,3,4,4,5,5,6];
var newArr=oldArr.filter(function(currentValue,index,arr){
    if(arr.indexOf(currentValue)===index){
        return true
    }else{
        return false
    }
});
console.log(newArr);

3、ES6中方法
一、使用Set函數與擴展運算符(利用的是Set函數數值惟一性的特色)prototype

[...new Set([1,1,2,3,4,5])]

二、Array.from()【利用的是Set函數數值惟一性的特色及from()函數能夠將其轉換爲數組的原理】code

Array.from(new Set([1,1,2,2,3,4,5,5]));
相關文章
相關標籤/搜索