利用js写出数组去重的两种方法
时间: 2023-10-10 21:09:43 浏览: 84
可以使用 Set() 和 filter() 方法来进行数组去重操作。
方法一:
```javascript
let arr = [1, 2, 2, 3, 3, 3];
let newArr = [...new Set(arr)];
console.log(newArr); // [1, 2, 3]
```
方法二:
```javascript
let arr = [1, 2, 2, 3, 3, 3];
let newArr = arr.filter((item, index) => arr.indexOf(item) === index);
console.log(newArr); // [1, 2, 3]
```
相关问题
写出js中实现数组去重的两种方法
在JavaScript中,有多种方法可以实现数组去重,以下是其中的两种常见方法:
### 1. 利用Set数据结构(ES6+)
Set是一种特殊的集合数据结构,它不允许重复的值。你可以将数组转换成Set,然后再转回数组,这样就可以去除重复元素。
```javascript
function uniqueArray(arr) {
return [...new Set(arr)];
}
```
示例:
```javascript
let arr = [1, 2, 2, 3, 4, 4];
console.log(uniqueArray(arr)); // 输出 [1, 2, 3, 4]
```
### 2. 使用双重循环遍历(低版本兼容)
如果你需要支持旧版浏览器,可以使用双重循环遍历的方式来检查和删除重复元素。
```javascript
function uniqueArray(arr) {
let result = [];
for(let i=0; i<arr.length; i++) {
if(result.indexOf(arr[i]) === -1) { // 如果不在结果数组中,则添加
result.push(arr[i]);
}
}
return result;
}
```
示例:
```javascript
let arr = [1, 2, 2, 3, 4, 4];
console.log(uniqueArray(arr)); // 输出 [1, 2, 3, 4]
```
这两种方法都可以有效去除数组中的重复元素。然而需要注意的是,如果数组元素是复杂的数据结构(如对象),那么简单的相等比较(如 `===`)可能无法达到预期效果,因为它们可能会有不同的引用。在这种情况下,可能需要自定义比较函数。
js数组去重6种方法
Sure! 下面是常见的6种JavaScript数组去重的方法:
1. 使用Set数据结构:Set是ES6引入的一种新的数据结构,它可以自动去除重复的值。
```javascript
const array = [1, 2, 3, 3, 4, 5, 5];
const uniqueArray = [...new Set(array)];
console.log(uniqueArray);
```
2. 使用filter方法:使用filter方法遍历数组,然后通过indexOf判断当前元素在数组中的索引和当前索引是否相等,如果相等则保留,否则去除。
```javascript
const array = [1, 2, 3, 3, 4, 5, 5];
const uniqueArray = array.filter((value, index, self) => {
return self.indexOf(value) === index;
});
console.log(uniqueArray);
```
3. 使用reduce方法:使用reduce方法遍历数组,将每个元素放入一个新数组中,同时使用includes方法判断新数组中是否已存在该元素。
```javascript
const array = [1, 2, 3, 3, 4, 5, 5];
const uniqueArray = array.reduce((acc, currentValue) => {
if (!acc.includes(currentValue)) {
acc.push(currentValue);
}
return acc;
}, []);
console.log(uniqueArray);
```
4. 使用Map数据结构:使用Map数据结构可以根据键的唯一性去除重复值。
```javascript
const array = [1, 2, 3, 3, 4, 5, 5];
const uniqueArray = Array.from(new Map(array.map(value => [value, value])).values());
console.log(uniqueArray);
```
5. 使用递归:使用递归来遍历数组,然后判断当前元素是否在之前的元素中出现过。
```javascript
const array = [1, 2, 3, 3, 4, 5, 5];
function unique(array) {
if (array.length === 1) {
return array;
}
if (array.slice(1).includes(array
阅读全文