JS数组去重的五种写法_实现方法与技巧解析

2025-04-25 18

在 JavaScript 中,有多种方法可以对数组进行去重。以下是五种常见的实现方式:

1. 使用 Set

Set 是 ES6 中新增的数据结构,它类似于数组,但 Set 的值是的。
```javascript
function uniqueWithSet(arr) {
return [...new Set(arr)];
}

// 示例
const arr = [1, 2, 2, 3, 4, 4, 5];
console.log(uniqueWithSet(arr)); // [1, 2, 3, 4, 5]
```

2. 使用 filterindexOf

通过 filter 方法结合 indexOf 来判断元素是否是次出现。
```javascript
function uniqueWithFilter(arr) {
return arr.filter((item, index) => arr.indexOf(item) === index);
}

// 示例
const arr = [1, 2, 2, 3, 4, 4, 5];
console.log(uniqueWithFilter(arr)); // [1, 2, 3, 4, 5]
```

3. 使用 reduce

通过 reduce 方法累积结果,并在累积过程中检查重复项。
```javascript
function uniqueWithReduce(arr) {
return arr.reduce((acc, item) => {
if (!acc.includes(item)) {
acc.push(item);
}
return acc;
}, []);
}

// 示例
const arr = [1, 2, 2, 3, 4, 4, 5];
console.log(uniqueWithReduce(arr)); // [1, 2, 3, 4, 5]
```

4. 使用 forEach 和对象键值对

利用对象的键名性来实现去重。
```javascript
function uniqueWithObject(arr) {
const obj = {};
const result = [];
arr.forEach(item => {
if (!obj[item]) {
obj[item] = true;
result.push(item);
}
});
return result;
}

// 示例
const arr = [1, 2, 2, 3, 4, 4, 5];
console.log(uniqueWithObject(arr)); // [1, 2, 3, 4, 5]
```

5. 使用 Map

类似于使用对象的方法,但 Map 提供了更灵活的键值对存储。
```javascript
function uniqueWithMap(arr) {
const map = new Map();
const result = [];
arr.forEach(item => {
if (!map.has(item)) {
map.set(item, true);
result.push(item);
}
});
return result;
}

// 示例
const arr = [1, 2, 2, 3, 4, 4, 5];
console.log(uniqueWithMap(arr)); // [1, 2, 3, 4, 5]
```

这些方法各有优缺点,选择哪种方法可以根据具体的需求和代码风格来决定。例如,Set 是最简洁和高效的方法,但在需要兼容旧版浏览器时可能需要使用其他方法。

(www. n z w6.com)

Image

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关