新闻中心
J*aScript 数组去重:多种方法实现数组元素唯一性
使用Set、filter结合indexOf、reduce及Map可实现J*aScript数组去重,基本类型推荐Set,对象数组按属性用Map键值映射,兼容老环境可用filter+indexOf。

在 J*aScript 中,数组去重是一个常见的需求,尤其是在处理用户输入、接口返回数据或进行数据清洗时。实现数组去重的方法有很多,每种方式适用于不同的场景。下面介绍几种常用且有效的数组去重方法。
使用 Set 去重(最简洁)
Set 是 ES6 引入的数据结构,它只存储唯一值,天然适合去重。
这种方法适用于基本类型(如字符串、数字)的数组去重,代码简洁高效。示例:
const arr = [1, 2, 2, 3, 4, 4, 5]; const unique = [...new Set(arr)]; // 结果:[1, 2, 3, 4, 5]
使用 filter 和 indexOf 去重
通过 filter 配合 indexOf,保留第一次出现的元素。
该方法兼容性好,适合不支持 Set 的老环境。示例:
const arr = ['a', 'b', 'a', 'c', 'b']; const unique = arr.filter((item, index) => arr.indexOf(item) === index); // 结果:['a', 'b', 'c']
使用 reduce 实现去重
利用 reduce 累积一个不含重复项的新数组。
Mureka
Mureka是昆仑万维最新推出的一款AI音乐创作工具,输入歌词即可生成完整专属歌曲。
1091
查看详情
这种方式逻辑清晰,便于添加自定义判断条件。
示例:
const arr = [1, 2, 2, 3, 1];
const unique = arr.reduce((acc, curr) => {
if (!acc.includes(curr)) {
acc.push(curr);
}
return acc;
}, []);
// 结果:[1, 2, 3]
对象数组去重(基于属性)
当数组元素是对象时,不能直接用 Set 或 indexOf,需根据某个唯一字段(如 id)去重。
常用方法是使用 Map 按键存储,确保唯一性。示例:按 id 去重
const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Alice' }
];
const unique = Array.from(new Map(users.map(item => [item.id, item])).values());
// 结果:两个对象,id 为 1 和 2 各保留一个
基本上就这些。选择哪种方法取决于数据类型和浏览器兼容要求。简单数组优先用 Set,对象数组推荐 Map 键值映射,老项目可用 filter + indexOf。不复杂但容易忽略细节,比如引用类型比较的问题。
以上就是J*aScript 数组去重:多种方法实现数组元素唯一性的详细内容,更多请关注其它相关文章!
# 是一个
# 杭州有什么好网站推广
# 玉溪抖音关键词排名招商
# 五大网站架构优化软件
# 网站推广指引有哪些类型
# 卢龙品牌网站建设方案
# 套皮网站推广
# 烧鹅店铺的营销推广
# 郑州seo公司有哪些
# 安徽网站建设方案案例
# 南安租房网站建设
# 是在
# 有何区别
# javascript
# 搜索功能
# 如何实现
# 键值
# 适用于
# 有哪些
# 数据结构
# 如何用
# red
# 数据清洗
# 浏览器
# java
# es6
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
优化大型XML文件解析:基于Python流式处理的内存高效方案
小红书怎么解除第三方平台绑定_小红书多平台登录解绑方法介绍
服务端验证_j*ascript输入检查
魅族17怎样用浏览器译外语网页_iPhone魅族17浏览器译外语网页【即时翻译】
谷歌学术网站直达地址 谷歌学术搜索网页版一键进入
AO3官网镜像链接 Archive of Our Own同人文在线浏览
Bing引擎入口最新2025 Bing搜索免费官方登录
mysql备份恢复性能优化_mysql备份恢复性能优化方法
Spyder启动失败:字体文件权限拒绝错误解决方案
Python Socket多播通信中指定源IP地址的实践指南
三星ZFold5多任务卡顿_Samsung ZFold5流畅度提升
Win11怎么开启省电模式_Win11电池节电模式自动开启
J*aScript对象创建方式_J*aScript设计模式应用
mysql如何设置表访问权限_mysql表访问权限配置
解决Python logging 中 datefmt 导致时间戳固定不变的问题
荣耀Play7T运行卡顿解决_荣耀Play7T性能优化
如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略
Django表单验证失败时保留用户输入数据的最佳实践
12306怎么选座位选到安静区_12306选座安静区域选择策略
Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口
Win11怎么用U盘重装系统 Win11制作启动盘并重装系统完整教程【详解】
QQ邮箱官网登录入口 QQ邮箱网页版邮箱快速登录
单12V-2×6实现为RTX 5090供电750W!甚至都没敢跑分
2026年发布! 美少女养成动作RPG《神剑少女战记》发布实机演示
神庙逃亡小游戏在线玩 神庙逃亡小游戏入口
AO3最新入口2025公告_AO3中文官网合集
优化Django表单:提交验证失败后保留用户输入
初次安装JDK时环境变量如何正确配置_J*A_HOME与PATH设置规则讲解
TikTok搜索结果不显示如何解决 TikTok搜索刷新优化方法
EMS快递官网app_中国邮政速递物流手机客户端
深入理解Promise链:如何在catch后中断then的执行
抖音网页版平台入口 抖音网页版官网在线访问教程
uc浏览器网页版入口 uc浏览器网页版最新网址
豆包手机助手发布技术预览版:直接嵌入手机系统!努比亚样机发售
蛙漫2日版入口 WAMAN2(日版)无删减漫画官网链接
c++中的const_cast和reinterpret_cast怎么用_c++四种类型转换
html两个JS只运行一个怎么办_让双JS在html中都运行方法【技巧】
如何使用 Excel 发布器与 Power BI 分享 Excel 洞察
如何设置Windows Defender的定时扫描_计划任务实现自动杀毒【安全】
J*aScript数组对象转换:按指定键分组与值收集
J*aScript中高效管理与清空动态列表:避免循环陷阱
解决 Vaadin 8 中大文件音频播放与定位时出现的 IOException
Excel函数批量查找替换超快方法_Excel用REPLACE和FIND函数秒级替换
使用Python高效删除Word宏并转换DOCM为DOCX格式
VS Code远程开发时如何处理文件权限问题
Python:递归比较文件夹内容并找出特定类型文件的差异
Mac怎么使用表情符号_Mac Emoji快捷键面板
J*a中实现Go语言select通道多路复用机制
如何在Python中使用Optional类型处理可变对象并避免Pylint警告
微信群消息显示延迟如何解决 微信群消息刷新优化方法


2025-11-01
浏览次数:次
返回列表
, 'a', 'c', 'b'];
const unique = arr.filter((item, index) => arr.indexOf(item) === index);
// 结果:['a', 'b', 'c']