数组去重方法
1. 通过 filter
过滤函数
JavaScript 的 Array.prototype.filter()
方法可以创建一个新数组,其包含通过所提供函数实现的测试的所有元素。利用这个特性,我们可以对数组进行去重。
1
2
3
4
5
|
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.filter((item, index, self) => {
return self.indexOf(item) === index;
});
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5]
|
2. 通过 new Set()
集合进行去重
Set
是 ES6 引入的一种新的数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值。我们可以利用这个特性进行数组去重。
1
2
3
|
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = [...new Set(array)];
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5]
|
3. for
循环遍历判断
虽然 filter
和 Set
是更现代且效率更高的方法,但了解如何使用 for
循环进行去重也很有用。
1
2
3
4
5
6
7
8
|
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = [];
for (let i = 0; i < array.length; i++) {
if (uniqueArray.indexOf(array[i]) === -1) {
uniqueArray.push(array[i]);
}
}
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5]
|