js数组去重

导读 在JavaScript中,有多种方法可以去除数组中的重复项。以下是几种常见的方法:**方法一:使用Set数据结构**Set是一种数据结构,它只允许存储...

在JavaScript中,有多种方法可以去除数组中的重复项。以下是几种常见的方法:

**方法一:使用Set数据结构**

Set是一种数据结构,它只允许存储唯一的值(没有重复)。因此,我们可以通过将数组转换为Set来轻松去除重复项。然后,我们可以将Set再转换回数组。这是一个非常简洁的方法。

```javascript

let array = [1, 2, 3, 4, 4, 5, 5, 5];

let uniqueArray = Array.from(new Set(array));

console.log(uniqueArray); // 输出:[1, 2, 3, 4, 5]

```

**方法二:使用filter方法**

这种方法是通过使用数组的filter方法和indexOf方法实现的。我们遍历数组中的每个元素,如果该元素不在新数组中(即它的索引与它在原数组中的位置不同),我们就将其添加到新数组中。这样,重复的元素就会被过滤掉。

```javascript

let array = [1, 2, 3, 4, 4, 5, 5, 5];

let uniqueArray = array.filter((value, index, self) => {

return self.indexOf(value) === index;

});

console.log(uniqueArray); // 输出:[1, 2, 3, 4, 5]

```

**方法三:使用reduce方法**

reduce方法也可以用来去除数组中的重复项。我们创建一个空对象和一个结果数组,遍历原数组的每个元素。如果对象中没有当前元素的属性,我们将该元素添加到结果数组中,并在对象中添加该属性以避免后续重复。如果有属性存在,我们就跳过这个元素。

```javascript

let array = [1, 2, 3, 4, 4, 5, 5, 5];

let uniqueArray = array.reduce((accumulator, currentValue) => {

if (!accumulator.includes(currentValue)) {

accumulator.push(currentValue); // 当找到一个新的元素时添加到累积器中(去重操作)

}

return accumulator; // 返回累积器数组(去重后的数组)

}, []); // 从空数组开始累积结果(初始值)

console.log(uniqueArray); // 输出:[1, 2, 3, 4, 5]

```

这些方法各有优点和缺点,可以根据你的具体需求和偏好选择使用哪种方法。

版权声明:本文由用户上传,如有侵权请联系删除!