js 数组去重 最好的
时间: 2023-09-10 20:11:58 浏览: 116
引用和提供了关于JavaScript数组去重的方法,下面将列举其中六种常见的数组去重方法。请注意,这些方法都是针对JavaScript语言的。
1. 使用Set:Set是ES6中引入的数据结构,它可以存储唯一的值。通过将数组转换为Set,然后再将Set转换回数组,即可实现数组去重。例如:
```javascript
const arr = [1, 2, 2, 3, 4, 4];
const uniqueArr = Array.from(new Set(arr));
```
2. 使用indexOf方法:遍历数组,将元素依次与之前的元素进行比较,如果不存在相同的元素,则将其添加到结果数组中。例如:
```javascript
const arr = [1, 2, 2, 3, 4, 4];
const uniqueArr = [];
for(let i = 0; i < arr.length; i++){
if(uniqueArr.indexOf(arr[i]) === -1){
uniqueArr.push(arr[i]);
}
}
```
3. 使用includes方法:与indexOf方法类似,includes方法也可以判断数组是否包含某个元素。例如:
```javascript
const arr = [1, 2, 2, 3, 4, 4];
const uniqueArr = [];
for(let i = 0; i < arr.length; i++){
if(!uniqueArr.includes(arr[i])){
uniqueArr.push(arr[i]);
}
}
```
4. 使用filter方法:利用filter方法筛选出只包含第一次出现的元素的新数组。例如:
```javascript
const arr = [1, 2, 2, 3, 4, 4];
const uniqueArr = arr.filter((item, index) => {
return arr.indexOf(item) === index;
});
```
5. 使用reduce方法:通过reduce方法遍历数组,将之前未出现的元素添加到结果数组中。例如:
```javascript
const arr = [1, 2, 2, 3, 4, 4];
const uniqueArr = arr.reduce((prev, cur) => {
if(!prev.includes(cur)){
prev.push(cur);
}
return prev;
}, []);
```
6. 使用Map:通过使用Map数据结构来存储数组元素,由于Map中的键是唯一的,可以实现数组去重。例如:
```javascript
const arr = [1, 2, 2, 3, 4, 4];
const map = new Map();
const uniqueArr = [];
for (const item of arr) {
if (!map.has(item)) {
map.set(item, true);
uniqueArr.push(item);
}
}
```
以上是常见的六种JS数组去重方法,通过灵活运用,可以根据实际情况选择最适合的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [高性能js数组去重(12种方法,史上最全)](https://download.csdn.net/download/weixin_38665814/12930200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [JS实现数组去重方法总结(六种方法)](https://download.csdn.net/download/weixin_38661008/12967052)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [Html+Css+JS的生日网页](https://download.csdn.net/download/Amax3747/88254112)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
阅读全文