在js中如何过滤让数组保持唯一性,范例,方法有哪些,含义
时间: 2024-09-24 13:10:24 浏览: 36
在JavaScript中,如果你想要从数组中过滤并保持元素唯一,你可以使用多种方法来实现:
1. **Set** 数据结构:
```javascript
let arr = [1, 2, 2, 3, 3, 3];
let uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // 输出:[1, 2, 3]
```
`Set` 是一种不允许有重复值的特殊类型的集合,将数组转换为Set会自动去除重复项。
2. **Array.filter() + Array.from()**:
```javascript
function removeDuplicates(array) {
return Array.from(new Map(array.map((item, index) => [item, index])));
}
let arr = [1, 2, 2, 3, 3, 3];
let uniqueArr = removeDuplicates(arr);
console.log(uniqueArr); // 输出:[1, 2, 3]
```
使用Map保证每个元素仅保留一次,再转换回数组。
3. **reduce() 和 hasOwnProperty()**:
```javascript
let arr = [1, 2, 2, 3, 3, 3];
let uniqueArr = arr.reduce((acc, val) => acc.includes(val) ? acc : [...acc, val], []);
console.log(uniqueArr); // 输出:[1, 2, 3]
```
通过遍历数组,如果当前元素不在累加器(acc)中,则添加到acc里。
这些方法都旨在从数组中筛选出独特的元素,确保数组内没有重复值。
阅读全文