陣列去重已經是乙個老生常談的問題了,依然經久不息,經過歲月的變遷es標準的公升級迭代,似乎有越來越多的方法和方式供我們使用,那麼那種方式才是最優的?那種才是最簡潔的?這個我們一起來**。
省略:傳統的遞迴方法,這裡我就不說了,是最傳統也是最笨的方法。
使用array.prototype.filter()方法,對元素進行過濾;
相關資料:array.prototype.filter()
var array = [2, "2", 2, "2"];//es5 使用filter
function
unique(array) ;
return array.filter(function
(item, index) );
}console.log(unique(array));
//[2,"2"]
set裡的元素只能出現一次,即元素是唯一的。
下面的**中也使用了(...)擴充套件語句,簡單來說就是把陣列轉換成n個物件的方法。
var array = [2, "2", 2, "2"];//es6 使用set特性(set元素只會出現一次,即元素是唯一的)
let unique = (array) => [...new set(array)]; //
(...)擴充套件語句,簡單來說就是把陣列引數轉換為多個物件引數
console.log(unique(array)); //
[2,"2"]
map也是es6新出的資料型別,方法set、has、get、clear、delete、keys都挺好用的。
var array = [2, "2", 2, "2"];//es6 map 本質使用的還是array.prototype.filter()
function
unique(array)
console.log(unique(array));
個人覺得最優的方案是第二種!歡迎補充,歡迎指正~
JavaScript 陣列去重
陣列去重,一般都是在面試的時候才會碰到,一般是要求手寫陣列去重方法的 如果是被提問到,陣列去重的方法有哪些?你能答出其中的10種,面試官很有可能對你刮目相看。在真實的專案中碰到的陣列去重,一般都是後台去處理,很少讓前端處理陣列去重。雖然日常專案用到的概率比較低,但還是需要了解一下,以防面試的時候可能...
Javascript陣列去重
set是es2015引入的資料型別,意為集合 其不允許重複元素出現的特性,對於nan undefined null都適用 set是es2015引入的資料型別,意為集合 其不允許重複元素出現的特性,對於nan undefined null都適用 function unique arr var arr ...
JavaScript陣列去重
例1定義乙個簡單的一維陣列 let myarr 0 1,3 2,4 3,3 4,5 6,1 7,8 方法一 使用es6的set let myarr 0 1,3 2,4 3,3 4,5 6,1 7,8 let result newset myarr sort a,b console.log resul...