在 JavaScript 中担忧,有多種方法可以對(duì)數(shù)組進(jìn)行去重,下面列出幾種比較常見的方法:
- 使用 Set:將數(shù)組轉(zhuǎn)化為 Set芹缔,Set 中的元素是唯一的,然后將 Set 轉(zhuǎn)回?cái)?shù)組瓶盛。
var arr = [1, 2, 3, 3, 4, 4, 5];
var uniqueArr = Array.from(new Set(arr));
- 使用 filter 和 indexOf:使用 filter 方法遍歷數(shù)組乖菱,通過(guò) indexOf 方法判斷數(shù)組中是否存在當(dāng)前元素坡锡,如果不存在則返回 true 進(jìn)行過(guò)濾。
var arr = [1, 2, 3, 3, 4, 4, 5];
var uniqueArr = arr.filter((item, index, array) => {
return array.indexOf(item) === index;
});
- 使用 reduce 和 includes:使用 reduce 方法遍歷數(shù)組窒所,通過(guò) includes 方法判斷數(shù)組中是否已經(jīng)包含當(dāng)前元素鹉勒,如果不包含則將當(dāng)前元素加入結(jié)果數(shù)組。
var arr = [1, 2, 3, 3, 4, 4, 5];
var uniqueArr = arr.reduce((result, item) => {
if (!result.includes(item)) {
result.push(item);
}
return result;
}, []);
- 使用 Map:借助 Map 數(shù)據(jù)結(jié)構(gòu)的特性吵取,將數(shù)組的元素作為 Map 的鍵禽额,實(shí)現(xiàn)去重。
var arr = [1, 2, 3, 3, 4, 4, 5];
var uniqueArr = [...new Map(arr.map(item => [item, item])).values()];