js 字符串数组去重
时间: 2024-01-04 15:04:27 浏览: 78
以下是两种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。
js new set数组去重
### 使用 JavaScript 中的 `Set` 实现数组去重
在现代 JavaScript 中,可以使用内置对象 `Set` 来轻松实现数组去重。`Set` 是一种集合数据结构,能够自动去除重复项并只保留唯一值。
#### 利用 `Set` 和扩展运算符进行数组去重
通过将数组传递给新的 `Set` 构造函数来创建一个不包含任何重复元素的新集合,再借助扩展运算符 (`...`) 将其转换回数组形式[^1]:
```javascript
const originalArray = [1, 2, 2, 3, 4, 4, 5];
const uniqueElements = [...new Set(originalArray)];
console.log(uniqueElements); // 输出: [1, 2, 3, 4, 5]
```
这种方法不仅简洁而且性能良好,在处理大型数据集时尤为有效。
对于多维数组的情况,由于 `Set` 只能识别基本类型的相等性(如数字、字符串),因此直接应用上述方法可能无法达到预期效果。此时需要先展平数组或将子数组序列化后再执行去重操作[^3]。
另外值得注意的是,虽然 `Map.set()` 方法用于向映射表中添加键值对[^4],但在本场景下并不适用于解决数组去重问题;相反,应该优先考虑更合适的工具——即 `Set` 结构本身及其便捷特性。
阅读全文
相关推荐















