1, 利用es6的set方法? ? ?-set特性:重復(fù)元素在set中自動(dòng)被過(guò)濾
var s = new Set([1, 2, 3, 3, '3']);
2,利用for嵌套循環(huán), splice去重(es5常用)
function unique(arr){ for(var i=0; i<arr.length; i++){ for(var j=i+1; j<arr.length; j++){ if(arr[i]==arr[j]){ //第一個(gè)等同于第二個(gè),splice方法刪除第二個(gè) arr.splice(j,1); j--; } } }return arr;}
3,利用indexOf去重? --?就判斷空數(shù)組中是否有相同元素,沒(méi)有則添加
function unique(arr) { if (!Array.isArray(arr)) { console.log('type error!') return } var array = []; for (var i = 0; i < arr.length; i++) { if (array .indexOf(arr[i]) === -1) { array .push(arr[i]) } } return array;}
4,利用filter
function unique(arr) { return arr.filter(function(item, index, arr) { //當(dāng)前元素督弓,在原始數(shù)組中的第一個(gè)索引==當(dāng)前索引值澳盐,否則返回當(dāng)前元素 return arr.indexOf(item, 0) === index; });}
5,利用includes
var array =[]; for(var i = 0; i < arr.length; i++) { if( !array.includes( arr[i]) ) {//includes 檢測(cè)數(shù)組是否有某個(gè)值 array.push(arr[i]); } }