數組去重

數組去重的兩種方法

1、利用數組的indexOf方法實現

原理:數組的indexOf(a);方法會返回字符a所在數組中的位置。當返回-1時,表明數組中不存在a這個字符;

var str = [1,2,2,2,3,4,5,5,6,7];
var backStr = [];
for(var i=0;i<str.length;i++){
    if( backStr.indexOf(str[i]) < 0 ){
        backStr.push(str[i]);
    }
} 
console.log(backStr);//1,2,3,4,5,6,7

缺點:性能上不是很好,須要使用for循環去遍歷數組再添加;es6

2、使用ES6中set()和Array.from()方法

原理:set是一種新的數據結構,它能夠接收一個數組或者是類數組對象,自動去重其中的重複項目.

var str = [1,2,2,2,3,4,5,5,6,7];
console.log(new Set(str));//{1,2,3,4,5,6,7}

直接使用set方法返回的是一個對象;
最後咱們要的是返回數組,因此須要使用Array.from()將對象轉化成數組;數組

var str = [1,2,2,2,3,4,5,5,6,7];
console.log(Array.from(new Set(str)));//[1,2,3,4,5,6,7]
相關文章
相關標籤/搜索