js怎么去掉数组重复的对象
原创如何在 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() 方法允许我们使用一个累加器函数将数组元素归并为一个单一的值。我们可以使用它来构建一个不含重复对象的数组:
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怎么去掉数组重复的对象的详细内容,更多请关注IT视界其它相关文章!
上一篇:js中join的用法 下一篇:js中innerhtml的用法