新闻中心
j*ascript_如何实现数组去重
使用Set去重是J*aScript中最高效的方法,适用于基本数据类型;对于对象数组则可通过filter配合findIndex按属性去重。

J*aScript 实现数组去重有多种方法,根据数据类型和性能需求可以选择不同的方式。以下是几种常用且实用的方法。
1. 使用 Set 去重(推荐)
ES6 提供了 Set 数据结构,它只存储唯一值,结合扩展运算符可以快速去重,适用于基本数据类型(如字符串、数字)。
const arr = [1, 2, 2, 3, 4, 4, 5];const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
这种方法简洁高效,是目前最常用的去重方式。
2. 使用 filter + indexOf
通过遍历数组,利用 indexOf 返回第一个匹配项的索引,判断当前项是否为首次出现。
const arr = [1, 2, 2, 3, 4, 4, 5];const uniqueArr = arr.filter((item, index) => arr.indexOf(item) === index);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
兼容性好,适合不支持 Set 的旧环境,但对大数据量性能较差。
3. 使用 reduce 构建唯一数组
利用 reduce 累积一个不含重复值的新数组。
先锋多用户商城系统
修改自网上仿乐购商城,新增功能:1、数据库在线备份与导入功能,可以随时备份数据库,数据受损可以导入数据库,确保数据安全;2、增加组合商品概念,可以用于组配商品销售(比如外套有蓝色和红色,鞋子有40码和41码等),买一送一、组合销售(比如上衣+围巾+长裙做为一个套装商品)和加价购买等销售方式;3、按照商品重量和送货距离实时计算精确运费,并可在订单中予以显示,使运费金额实现实时动态准确显示、清晰明了;
0
查看详情
const arr = [1, 2, 2, 3, 4, 4, 5];const uniqueArr = arr.reduce((acc, curr) => {
if (!acc.includes(curr)) {
acc.push(curr);
}
return acc;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
逻辑清晰,适合需要在累积过程中处理其他逻辑的场景。
4. 对象数组去重(按某个属性)
如果数组元素是对象,不能直接用 Set 或 indexOf。可以通过属性值来去重,例如使用 filter 配合 findIndex。
const users = [{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Alice' }
];
const uniqueUsers = users.filter((user, index, self) =>
self.findIndex(u => u.id === user.id) === index
);
console.log(uniqueUsers);
这样可以根据指定字段(如 id)确保对象唯一。
基本上就这些常见方法。简单去重首选 Set,复杂条件可选 filter 或 reduce。根据实际数据结构选择合适方案即可。
以上就是j*ascript_如何实现数组去重的详细内容,更多请关注其它相关文章!
# 文件上传
# seo矩阵好使吗
# 湘潭网站建设优化企业
# 酒泉网站推广费用
# 海宁推广网站如何制作
# seo全景高清壁纸
# 上海网站关键词优化排名
# 绥化seo公司技巧
# 江西公司推广网站
# seo激励
# 巴南知名的seo口碑
# 第一个
# 加载
# javascript
# 键值
# 如何使用
# 运算符
# 适用于
# 多用户
# 如何实现
# 数据结构
# red
# 大数据
# java
# es6
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
如何在Promise链中优雅地中断后续then执行
QQ邮箱官方邮箱登录入口 QQ邮箱网页版快速访问
Golang如何使用context实现超时取消_Golang context超时取消模式实践
PDO预处理语句中冒号的正确处理:区分SQL函数格式与命名占位符
J*a递归快速排序中静态变量导致数据累积问题的解决方案
CSS图片焦点样式实现教程:理解与应用tabindex属性
Python实时数据流中的动态最值查找策略
美团外卖商家服务中心入口 美团商家版官网入口
AO3同人作品网入口 AO3搜索引擎官网永久地址
将JSON对象数组转置为键值对列表的实用指南
天眼查怎么看公司融资情况 天眼查企业融资历史查询步骤【攻略】
css卡片内容溢出如何处理_使用overflow隐藏或scroll显示内容
Python多线程中正确使用sigwait处理SIGALRM信号
Node.js 中使用 node-cron 实现定时 API 数据抓取与处理
必由学网页版入口 必由学官方平台直接访问
多闪网页版在线观看免费入口_多闪官网访问入口
Composer的 "conflict" 字段有什么用_如何声明不兼容的包以避免依赖冲突
打开就能玩的植物大战僵尸 植物大战僵尸网页版传送门
AO3网页版最新入口合集 Archive of Our Own在线访问指南
深入理解Promise链:如何在catch后中断then的执行
J*aScriptWebpack优化_J*aScript构建工具实战
word中如何让数字纵向排列_Word数字纵向排列方法
Golang如何实现Web文件静态资源服务器_Golang静态资源服务器开发与实践
解决J*aScript中重复选择项的确认对话框显示问题
Lar*el Excel导入时生成自定义递增ID的策略与实践
PySpark中高效提取字符串右侧可变长度数字:使用regexp_extract
知音漫客正版漫画平台_知音漫客官网账号登录
夸克浏览器图书入口 夸克手机浏览器阅读入口
vivo手机互传视频怎么操作_vivo手机互传视频详细传输方法
文心一言怎样用插件调度API数据_文心一言用插件调度API数据【API调用】
微信网页版官方快速登录入口 微信网页版网页版账号直达
Excel中VLOOKUP的第四个参数是干什么用的_Excel VLOOKUP第四参数作用解析
护手霜蹭到袖口上了如何清洗? 怎样避免留下一圈油印?
Python自定义类排序:解决lambda键值访问TypeError的实践指南
Linux如何排查内存不足OOME问题_LinuxOOM分析教程
免费抖音短视频入口_抖音网页版短视频免费通道
Golang如何通过reflect获取匿名字段方法_Golang reflect匿名字段方法访问技巧
win11专注助手在哪 Win11免打扰模式设置与自动化规则【指南】
如何设置Windows Defender的定时扫描_计划任务实现自动杀毒【安全】
如何在更新Composer依赖后自动运行测试_使用post-update-cmd钩子触发PHPUnit
腾讯QQ邮箱登录入口_QQ邮箱官方网站使用地址
Django模型中自动计算可用余额的实现方法
Mac怎么锁定备忘录_Mac备忘录加密设置教程
品牌机怎么重装系统 联想/戴尔/惠普笔记本恢复出厂系统教程
抖音DOU+怎么投最有效 抖音付费推广的ROI提升技巧
CSS Flexbox如何实现多行排列_flex-wrap wrap自动换行显示
机器学习中对数变换预测结果的反向还原
汽水音乐网页版使用入口_汽水音乐电脑版播放指南
黑鲨3Pro怎样在相册开漫画风滤镜_iPhone黑鲨3Pro相册开漫画风滤镜【趣味滤镜】
铁路12306官网网页端快速入口 铁路12306官方首页登录教程


2025-12-04
浏览次数:次
返回列表