今天專門騰時間對數組去重的問題進行了總結es6
1.es6 is very good 數組
var arr = [1,2,3,8,5,4,9,6,"s",47,5,2,47,5,5,2,7]; var index = new Set(arr) console.log(index)
2.es5中的indexOf瀏覽器
var arr = [1,1,2,3,3,3,3,4]; function find() { var newarr = []; for(var i = 0; i < arr.length; i++) { if (newarr.indexOf(arr[i]) == -1 ) { newarr.push(arr[i]); } } console.log(newarr); } find(arr);
3.利用最簡單的思想就是for循環,可是通過測試發現這種方法的去重效果特別差(若是有1000或10000個數)一次一次循環,不推介使用,在不一樣瀏覽器能夠執行的時間不一樣測試
function sort1(arr) { var flag = 0; var result = new Array(); for(var i = 0; i < arr.length; i++) { flag = 0; for(var j = 0; j < arr.length; j++) { if(result[j] == arr[i]) { flag = 1;break; } } if(flag == 0) result.push(arr[i]); } return result; }
4.第三方類庫es5
jQuery: $.unique
underscore: _.unique
5. filter和indexOf相結合的方法spa
let arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0, 2, 2, 3]; function unique(arr){ return arr.filter((item, index, array) => array.indexOf(item) === index); } console.log(unique(arr)); // [1, "a", "b", "d", "e", 0, 2, 3]
先寫這麼多吧code