js 字符串数组去重
时间: 2024-01-04 11:04:27 浏览: 74
以下是两种JS实现字符串数组去重的方法:
1. 非正则实现(ES6实现):
```javascript
var arr = ['apple', 'banana', 'orange', 'apple', 'banana'];
var uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr); // 输出:['apple', 'banana', 'orange']
```
2. 利用for循环嵌套for循环,然后使用splice方法去重(ES5中最常用):
```javascript
var arr = ['apple', 'banana', 'orange', 'apple', 'banana'];
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) {
arr.splice(j, 1);
j--;
}
}
}
console.log(arr); // 输出:['apple', 'banana', 'orange']
```
相关问题
js mop数组去重
在JavaScript中,可以使用filter方法对数组进行去重。具体实现方法是,使用filter方法对数组进行遍历,然后使用indexOf方法判断当前元素在数组中第一次出现的位置是否等于当前位置,如果相等则说明该元素是第一次出现,保留该元素,否则过滤掉该元素。下面是一个示例代码:
```
let arr = ['a', 1, '字符串', 'c', 'a', '字符串', 1, 'b' , 2];
let res = arr.filter(function (el, index, self) {
return self.indexOf(el) === index;
});
// res ==> [ 'a', 1, '字符串', 'c', 'b', 2 ]
```
在上面的代码中,使用filter方法对数组arr进行遍历,然后使用indexOf方法判断当前元素在数组中第一次出现的位置是否等于当前位置,如果相等则说明该元素是第一次出现,保留该元素,否则过滤掉该元素。最终得到的结果是一个去重后的新数组res。
javascript对象数组去重
在JavaScript中,对象数组去重可以使用多种方法。以下是其中一些常见的技巧:
1. **基于哈希集合的方法**[^1]:
```javascript
let arr = ["1", "1", "2", "3", "5", "3", "1", "5", "4"];
const uniqueObjArr = arr.reduce((obj, item) => {
obj[item] = true;
return obj;
}, {});
console.log(uniqueObjArr); // { '1': true, '2': true, '3': true, '5': true, '4': true }
```
2. **利用`Set`数据结构**:
```javascript
let arr = [...new Set(arr)];
```
`Set`只存储唯一的值,所以转换成`Set`再回推到数组就能得到去重后的数组。
3. **扩展运算符与`indexOf`**:
```javascript
arr = arr.filter((item, index, self) => {
return self.indexOf(item) === index;
});
```
这里通过比较当前元素在数组中的索引位置(第一次出现)和当前位置是否相同来判断重复。
4. **自定义`unique7`方法**,结合排序和对比元素:
```javascript
Array.prototype.unique7 = function() {
this.sort();
var result = [this[0]];
for (let i = 1; i < this.length; i++) {
if (this[i] !== result[result.length - 1]) {
result.push(this[i]);
}
}
return result;
};
arr = arr.unique7();
```
这种方法先对数组排序,然后只保留不连续的元素。
对于数组去重,还可以尝试使用`filter()`、`reduce()`或者`concat()`配合`indexOf()`或`includes()`等方法。但需要注意的是,如果你的数组元素不仅仅是基本类型(如字符串和数字),而是复杂的数据结构(如对象),那么上述基于哈希集合的方法会更有效,因为它们依赖于对象的唯一标识。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)