📅  最后修改于: 2023-12-03 14:57:54.685000             🧑  作者: Mango
在开发时,经常需要对数组进行去重操作以获取唯一值。Javascript提供了几种方式可以实现此功能。
ES6引入了Set数据结构,它类似于数组,但是成员的值都是唯一的。因此,将一个数组转换为Set数据结构,然后再转回数组,就可以实现数组去重的效果。
const arr = [1, 2, 2, 3, 3, 4];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4]
使用filter方法可以实现数组去重的效果,原理是遍历整个数组,将重复的元素过滤掉。
const arr = [1, 2, 2, 3, 3, 4];
const uniqueArr = arr.filter((item, index, arr) => arr.indexOf(item) === index);
console.log(uniqueArr); // [1, 2, 3, 4]
使用reduce方法可以将数组元素逐个处理,最终将其转换为一个新的数组。在处理过程中,将重复的元素过滤掉。
const arr = [1, 2, 2, 3, 3, 4];
const uniqueArr = arr.reduce((prev, curr) => prev.includes(curr) ? prev : [...prev, curr], []);
console.log(uniqueArr); // [1, 2, 3, 4]
以上是三种常见的方法,可以实现数组去重的效果。对于较小的数组,使用任何一种方法都可以快速实现,但对于大型数组,建议使用Set结构,因为它的效率更高。