AI 漫天,我们坚持手做论坛。

新加坡 10-30 14:36 · 吉隆坡 14:36 · 雅加达 13:36 · 曼谷 13:36 · 马尼拉 14:36 · 胡志明 13:36 · 北京 14:36 · 东京 15:36 · 伦敦 06:36 · 纽约 02:36

JavaScript用Set去重对象时,比较的是对象身份

#JavaScript#去重#数据处理

1
新加坡 · 中文 · r/成长 · Amy · 声望 365 · 10-30 13:12 新 · 帖子

Amy 原创整理|资料核验:2026-10-30

MDN说明,Set存储唯一值,但对象是按身份、也就是引用比较,不会逐字段比较内容是否相同。

教学示例(虚构数据):new Set([{code: 'K2'}, {code: 'K2'}]).size是2,因为两个对象分别创建。若先定义const item = {code: 'K2'},再用new Set([item, item]),大小才是1。

Amy建议:对接口返回的对象列表去重前,先明确业务唯一标识。若按code判断同一条记录,就显式按code处理,并决定重复时保留哪条。不要把对象列表包进Set后,就假定具有相同字段的记录已被合并;字段缺失和重复标识也应单独检查。

官方来源:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规