整理一波陣列去重方法

2022-08-26 02:06:10 字數 2535 閱讀 5888

關於陣列去重,一直用的是迴圈,還有es6的set,查閱資料竟有如此多的去重方法,整理了如下。直接上乾貨

function

unique(arr)

}if(!isrepeat)

}return

newarr;

}var arr = [5,6,1,8,1,6];

console.log(unique(arr));

var newarr =;

for(var i=0; i)

}newarr.push(arr[i]);

}return

newarr;

}var arr = [5,6,1,8,1,6];

console.log(unique(arr));

遍歷傳入的陣列元素,如果新陣列中沒有這個元素,就push進去新陣列

functionunique(arr) 

});returnnewarr;

}var arr = [5,6,1,8,1,6];

console.log(unique(arr));

item 表示陣列中的每個元素,index 是每個元素的出現位置。indexof 返回匹的第乙個索引。

function unique(arr) );

}

先排序,再比較相鄰的是否相同,不同就push進去新陣列

function

unique(arr)

}return

newarr;

}var arr = [5,6,1,8,1,6];

console.log(unique(arr));

對陣列排序,將第乙個元素push進去新陣列,再將每個要放進入的元素與新陣列的最後乙個元素比較,不同就push

function

unique(arr)

}

return

newarr;

}var arr = [5,6,1,8,1,6];

console.log(unique(arr));

將陣列值作為物件的屬性,如果重複了就不賦值。

function

unique(arr) ;

for(var i=0; i)

}return

newarr;

}var arr = [5,6,1,8,1,6];

console.log(unique(arr));

但是要注意這個方法不能應對所有情況

1. 無法區分隱式型別轉換成字串後一樣的值,比如 1 和 '1' 。

2 .無法處理複雜資料型別,比如物件(因為物件作為 key 會變成 [object object] )。

3. 特殊資料,比如 '__proto__' ,因為 tmp 物件的 __proto__ 屬性無法被重寫。

map 是一種新的資料型別,也是鍵值對的集合,但是「鍵」的範圍不限於字串,各種型別的值(包括物件)都可以當作鍵。

function

unique(arr)

}return

newarr;

}var arr = [5,6,1,8,1,6];

console.log(unique(arr));

array.from()方法從乙個類似陣列或可迭代物件中建立乙個新的陣列例項。

function

unique(arr)

var arr = [5,6,1,8,1,6];

console.log(unique(arr));

includes()方法用來判斷乙個陣列是否包含乙個指定的值,根據情況,如果包含則返回 true,否則返回false。

function

unique(arr)

});return

newarr;

}var arr = [5,6,1,8,1,6];

console.log(unique(arr));

陣列去重方法整理

陣列去重看似乙個簡單的問題,隨著我們的學習,對於新知識的掌握這個曾經困著我們的問題逐漸變得游刃有餘。要去重,中心解決辦法就是比較該陣列中是否重複的元素,而後將重複的元素去掉。以下帶來幾個樓主折磨自己中研究出的一點方法 for迴圈法 思路 將陣列中的每乙個數與陣列中其他的數進行比較,看是否有相同的。如...

JS實現陣列去重方法整理

我們先來看下面的例子,當然 與網路,位址 刪除陣列中多個不連續的陣列元素的正確姿勢 我們現在將陣列中所有的 a 元素刪除 var arr a a b c d a a e g a f arr.foreach function value,index console.log arr a b c d a ...

整理陣列去重的幾種常用方法

最近面試有乙個面試題,要求盡可能多的列舉陣列去重的方法,現整理一下 最簡單陣列去重法 新建一新陣列,遍歷傳入陣列,值不在新陣列就push進該新陣列中 ie8以下不支援陣列的indexof方法 function uniq array return temp var aa 1,2,2,4,9,6,7,5...