用纯函数写两个数组去重的方法
时间: 2024-01-25 17:47:19 浏览: 71
Sure!
第一种方法,使用Set去重:
```javascript
function uniqueArray1(arr) {
return Array.from(new Set(arr));
}
console.log(uniqueArray1([1, 2, 2, 3, 4, 4, 5])); // [1, 2, 3, 4, 5]
```
第二种方法,使用reduce去重:
```javascript
function uniqueArray2(arr) {
return arr.reduce((prev, cur) => prev.includes(cur) ? prev : [...prev, cur], []);
}
console.log(uniqueArray2([1, 2, 2, 3, 4, 4, 5])); // [1, 2, 3, 4, 5]
```
请问这个回答是否满足您的要求呢?
相关问题
js中判断两个数组去重的方法
在JavaScript中,有几种常见的方法可以用来判断并去除数组中的重复元素:
1. **Set数据结构**:Set是一个特殊的类,其中的元素都是唯一的,没有重复。你可以将数组转换为Set,然后再转换回数组,这样就自动去除了重复元素:
```javascript
let array = [1, 2, 2, 3];
let uniqueArray = [...new Set(array)];
```
2. **使用filter()和indexOf()**:遍历数组,对于每个元素,如果它不在新数组中,则添加到新数组中:
```javascript
function removeDuplicates(arr) {
return arr.filter((value, index, self) => self.indexOf(value) === index);
}
let array = [1, 2, 2, 3];
let uniqueArray = removeDuplicates(array);
```
3. **使用reduce()函数**:通过reduce()函数将数组变为单值,通常我们会选择JSON.stringify()作为“键”,因为相同的数组会转化为相同的字符串:
```javascript
let array = [1, 2, 2, 3];
let uniqueArray = array.reduce((acc, value) => acc.includes(value) ? acc : [...acc, value], []);
```
以上每种方法都适用于大部分场景,但是需要注意的是,它们处理对象的方式取决于对象的比较规则(默认为引用相等,而非属性完全相同)。如果你需要基于对象内容去重,那么可能需要额外的处理。
用js代码写一个数组去重的案例
### 回答1:
好的,以下是一个用 JavaScript 代码实现数组去重的案例:
```javascript
const arr = [1, 2, 3, 3, 4, 5, 5, 6];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5, 6]
```
这个案例中,我们使用了 ES6 中的 Set 数据结构,它可以自动去重。我们将原数组转换成 Set,然后再将 Set 转换回数组,就可以得到去重后的数组了。
### 回答2:
下面是一个用JavaScript代码实现数组去重的案例:
```javascript
function removeDuplicates(arr) {
// 使用Set数据结构对数组进行去重
// Set会自动过滤重复的元素
const uniqueArr = Array.from(new Set(arr));
return uniqueArr;
}
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = removeDuplicates(arr);
console.log(uniqueArr); // 输出结果为 [1, 2, 3, 4, 5]
```
以上代码定义了一个名为`removeDuplicates`的函数,该函数接受一个数组作为参数。在函数内部,我首先使用Set数据结构将数组转换为一个Set对象,这样会自动过滤掉数组中的重复元素。然后,我使用`Array.from`方法将Set对象转换为一个新数组,并将其返回。最后,我定义了一个测试数组`arr`,并调用`removeDuplicates`函数进行去重操作,将结果输出到控制台。
通过这个案例,我们可以了解到使用Set数据结构可以轻松地实现数组去重。Set对象只会存储唯一的值,因此当将数组转换为Set对象后,重复的元素会自动被过滤掉。
### 回答3:
要用JavaScript代码写一个数组去重的案例,可以使用两种方法进行操作:使用Set数据结构或者使用遍历比较的方式。
1. 使用Set数据结构
代码如下:
```javascript
const array = [1, 2, 3, 4, 4, 5, 6, 6];
const uniqueArray = Array.from(new Set(array));
console.log(uniqueArray); // [1, 2, 3, 4, 5, 6]
```
上述代码创建了一个包含重复元素的数组array。通过将这个数组传入Set构造函数中,可以得到一个Set对象。然后,使用Array.from方法将Set对象转换为数组,从而得到去重之后的数组uniqueArray。
2. 使用遍历比较的方式
代码如下:
```javascript
const array = [1, 2, 3, 4, 4, 5, 6, 6];
const uniqueArray = [];
for (let i = 0; i < array.length; i++) {
if (uniqueArray.indexOf(array[i]) === -1) {
uniqueArray.push(array[i]);
}
}
console.log(uniqueArray); // [1, 2, 3, 4, 5, 6]
```
上述代码使用遍历循环来逐个比较数组中的元素。通过调用indexOf方法,判断元素是否已经存在于去重后的数组uniqueArray中。如果不存在,就将该元素添加到数组中。
无论是使用Set数据结构还是使用遍历比较的方式,都可以实现数组去重的功能。不过使用Set数据结构更加简洁高效。
阅读全文