在 JavaScript 中,有多种方法可以对数组进行去重,下面列出几种比较常见的方法:
- 使用 Set:将数组转化为 Set,Set 中的元素是唯一的,然后将 Set 转回数组。
var arr = [1, 2, 3, 3, 4, 4, 5];
var uniqueArr = Array.from(new Set(arr));
- 使用 filter 和 indexOf:使用 filter 方法遍历数组,通过 indexOf 方法判断数组中是否存在当前元素,如果不存在则返回 true 进行过滤。
var arr = [1, 2, 3, 3, 4, 4, 5];
var uniqueArr = arr.filter((item, index, array) => {
return array.indexOf(item) === index;
});
- 使用 reduce 和 includes:使用 reduce 方法遍历数组,通过 includes 方法判断数组中是否已经包含当前元素,如果不包含则将当前元素加入结果数组。
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 数据结构的特性,将数组的元素作为 Map 的键,实现去重。
var arr = [1, 2, 3, 3, 4, 4, 5];
var uniqueArr = [...new Map(arr.map(item => [item, item])).values()];