删除数组中的重复项,例如数组['apple', 'orange', 'apple', 'banana', 'pear', 'banana']去重后应为['apple', 'orange', 'banana', 'pear']。
时间: 2024-01-04 21:20:07 浏览: 201
以下是两种删除数组中重复项的方法:
1. 使用Set数据结构
```javascript
var arr = ["apple","banana","pear","apple","orange","orange"];
var uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr); // 输出:["apple", "banana", "pear", "orange"]
```
2. 使用filter方法
```javascript
var arr = ["apple","banana","pear","apple","orange","orange"];
var uniqueArr = arr.filter((item, index) => arr.indexOf(item) === index);
console.log(uniqueArr); // 输出:["apple", "banana", "pear", "orange"]
```
相关问题
利用数组中的filter方法,将已知数组var arr = ['apple','banana','pear','apple','orange','orange']; 去重
好的,那我来具体讲解一下这种方法的实现步骤:
1. 使用filter()方法遍历原数组arr,返回一个新数组,新数组中的元素满足以下条件:
- 在原数组中的下标等于该元素第一次出现的下标。
2. 返回新数组result即为去重后的数组。
代码实现如下:
```
function unique(arr) {
let result = arr.filter((item, index, self) => {
return self.indexOf(item) === index;
});
return result;
}
let arr = ['apple', 'banana', 'pear', 'apple', 'orange', 'orange'];
let result = unique(arr);
console.log(result); // ['apple', 'banana', 'pear', 'orange']
```
需要注意的是,这种方法的时间复杂度也比较高,为O(n^2),不适合处理大规模的数组。此外,使用indexOf()方法还有一个问题就是它无法去重NaN和{}等复杂数据类型。
3) 利用数组中的filter方法,将已知数组var arr = ['apple','banana','pear','apple','orange','orange']; 去重
可以使用以下代码实现数组去重:
```
var arr = ['apple', 'banana', 'pear', 'apple', 'orange', 'orange'];
var uniqueArr = arr.filter(function(item, index, array) {
return array.indexOf(item) === index;
});
console.log(uniqueArr); // ['apple', 'banana', 'pear', 'orange']
```
这里使用了数组的 `filter` 方法,对数组中的每个元素进行过滤。在过滤的过程中,判断当前元素在数组中第一次出现的位置是否等于当前元素的位置,如果等于,则保留该元素,否则过滤掉该元素。这样就可以实现数组去重的目的。