array.from方法可以將set結構轉為陣列
let items = new
set([1, 2, 3, 4, 5]);
let array = array.from(items);
這就是提供了一種資料去重的方法
function uniq(array)
uniq([1, 2, 3, 3]) //[1, 2, 3]
運用擴充套件運算子(…)提供了一種更便捷的去重方法
let arr = [2, 3, 3, 5, 6, 2];
let uniq = [...new set(arr)];
//[2, 3, 5, 6]
這是一種原生js的去重方法,借助乙個空陣列來實現去重,便於理解底層原理(xyz函式帶有引數)
function
xyz(arr) )
return a;
}console.log(xyz([1,2,3,2,3]));
//[1, 2, 3]
同上(xyz函式不帶引數)
拓展:需要注意的一點就是此函式可以傳多個陣列,但是要看arguments[index]
決定執行哪個陣列,預設是執行第乙個。
function
xyz() )
return a;
}console.log(xyz([1,2,3,2,3],[2,2,1]));
//[1, 2, 3]
這是一種基於陣列原型鏈的去重方法
array.prototype.uniq = function() )
return a;
}console.log([1,2,1,3].uniq());
//[1, 2, 3]
主要思想:建立乙個新陣列,首先遍歷原陣列,若原陣列某個元素不在新陣列中,則新增到新陣列;若存在,則忽略。
基本思想:先對陣列排序。再定義乙個新陣列,遍歷排序後的陣列,若排序後的陣列元素不等於新陣列最後乙個元素,則新增。function
uniqearray(arr)
}if(!repeat)
}return res;
}
基本思想:利用物件的屬性。遍歷陣列,若該陣列元素不是物件的屬性,則新增。function
uniqearray(arr)
}return res;
}
基本思想:通過filter篩選出去重後的陣列。若indexof方法在該元素之後再查不到該元素的位置,表示該元素不存在,符合要求。function
uniqearray(arr) ;
for(let i = 0; i< arr.length; i++)
}return res;
}
function
uniqearray
(arr)
)}
js陣列去重方法
var arr 1,2,3,4,5,1,2,3 function norepeat arr console.log norepeat arr 結果 1,2,3,4,5 arr.indexof val 這個方法會獲取val所在arr的下標 返回為 true 說明 獲取下標後和index下標對比如果 i...
JS陣列去重方法
var arr 1,2,1,2 定義乙個空陣列 var arr1 遍歷原始陣列,若新陣列中沒有這個元素,那麼就將該元素新增到新陣列中 for var i 0 i方法一 二維陣列中,是否可以用上面的方法呢?答案是否定的。js的indeof啊返回字串字元或陣列中某個元素的位置,它的內部是遍歷這個陣列看是...
JS陣列去重方法
將陣列var arr 1,1,true true true,true,15,15,false,false,undefined,undefined,null,null,nan,nan,nan 0,0,a a 中重複的值過濾掉 使用es6中的set是最簡單的去重方法 var arr 1 1,true t...