在 JavaScript 中,有几种常见的方法可以对数组进行去重操作。下面介绍其中几种常用的方法:
1. 使用 Set
Set 是 ES6 引入的一种数据结构,它可以存储唯一的值,利用这个特性可以轻松实现数组去重。通过将数组转换为 Set,然后再将 Set 转换回数组,就可以去除重复的元素。
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr); // [1, 2, 3, 4, 5]
或者使用扩展运算符(Spread Operator)进行转换:
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
2. 使用 indexOf 或 includes
这种方法通过遍历数组,利用 indexOf 或 includes 方法来判断元素是否已经存在于新数组中,如果不存在则添加到新数组中。
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
if (uniqueArr.indexOf(arr[i]) === -1) {
uniqueArr.push(arr[i]);
}
}
console.log(uniqueArr); // [1, 2, 3, 4, 5]
3. 使用 filter
使用 filter 方法结合 indexOf 或 includes 方法来过滤出不重复的元素,形成新数组。
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = arr.filter((item, index) => {
return arr.indexOf(item) === index;
});
console.log(uniqueArr); // [1, 2, 3, 4, 5]
4. 使用 reduce
使用 reduce 方法,遍历数组,将不重复的元素添加到新数组中。
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = arr.reduce((prev, curr) => {
if (!prev.includes(curr)) {
prev.push(curr);
}
return prev;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
这些方法都可以实现数组去重的功能,选择使用哪种方法取决于个人偏好和具体的需求。