如何在 JavaScript 中去除数组中的重复对象?Set 数据结构:创建 Set,利用其不存储重复值的特点。reduce() 方法:使用累加器函数逐个检查元素,将不重复元素放入累加器。filter() 和 indexOf() 方法:过滤索引与数组中第一个索引相同的元素,去除重复。Lodash 库:使用 uniqBy 方法,基于指定属性去除重复对象。

如何在 JavaScript 中去除数组中的重复对象
JavaScript 数组中包含对象时,我们需要对对象进行去重操作。让我们一步一步深入了解如何在 JavaScript 中实现此目标。
1. 使用 Set 数据结构
Set 数据结构在 JavaScript 中是一个内置的对象,它不会存储重复值。我们可以利用它来去除数组中的重复对象:
const originalArray = [{ name: 'John' }, { name: 'Jane' }, { name: 'John' }, { name: 'Mary' }];const uniqueObjects = [...new Set(originalArray)];console.log(uniqueObjects);// 输出: [{ name: 'John' }, { name: 'Jane' }, { name: 'Mary' }]
2. 使用 reduce() 方法
reduce() 方法允许我们使用一个累加器函数将数组元素归并为一个单一的值。我们可以使用它来构建一个不含重复对象的数组:
摩笔天书
摩笔天书AI绘本创作平台
135 查看详情
const uniqueObjects = originalArray.reduce((acc, curr) => { const found = acc.find(obj => obj.name === curr.name); if (!found) acc.push(curr); return acc;}, []);console.log(uniqueObjects);// 输出: [{ name: 'John' }, { name: 'Jane' }, { name: 'Mary' }]
3. 使用 filter() 和 indexOf() 方法
filter() 方法允许我们基于一个条件函数过滤数组元素。indexOf() 方法返回给定元素在数组中的第一个索引,如果不存在则返回 -1。我们可以使用它们来实现对象去重:
const uniqueObjects = originalArray.filter((obj, i) => originalArray.indexOf(obj) === i);console.log(uniqueObjects);// 输出: [{ name: 'John' }, { name: 'Jane' }, { name: 'Mary' }]
4. 使用 Lodash
Lodash 是一个功能强大的 JavaScript 实用程序库。它提供了一个叫 uniqBy 的方法,可以基于一个给定的属性来去除数组中的重复对象:
import { uniqBy } from 'lodash';const uniqueObjects = uniqBy(originalArray, 'name');console.log(uniqueObjects);// 输出: [{ name: 'John' }, { name: 'Jane' }, { name: 'Mary' }]
以上就是js怎么去掉数组重复的对象的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/900870.html
微信扫一扫
支付宝扫一扫