首页 > web前端 > js教程 > 如何在 JavaScript 中从数组中删除重复的对象?

如何在 JavaScript 中从数组中删除重复的对象?

Mary-Kate Olsen
发布: 2024-12-27 20:17:10
原创
281 人浏览过

How to Remove Duplicate Objects from an Array in JavaScript?

如何从数组中消除重复的对象

您的查询围绕有效地从对象内的数组中删除重复的对象进行。让我们探索一些有效的技术来实现这一目标。

ES6 解决方案:

引入一点 ES6 的优雅,我们可以利用 filter 和 findIndex 方法:

obj.arr = obj.arr.filter((value, index, self) =>
  index === self.findIndex((t) => (
    t.place === value.place && t.name === value.name
  ))
);
登录后复制

这种方法确保只有唯一的对象保留在

通用解决方案:

对于更通用的解决方案,请考虑:

const uniqueArray = obj.arr.filter((value, index) => {
  const _value = JSON.stringify(value);
  return index === obj.arr.findIndex(obj => {
    return JSON.stringify(obj) === _value;
  });
});
登录后复制

此方法使用 JSON 字符串化来比较基于以下内容的对象他们的属性值。

基于属性过滤:

或者,您可以定义一个函数来按特定属性比较对象:

const isPropValuesEqual = (subject, target, propNames) =>
  propNames.every(propName => subject[propName] === target[propName]);

const getUniqueItemsByProperties = (items, propNames) => 
  items.filter((item, index, array) =>
    index === array.findIndex(foundItem => isPropValuesEqual(foundItem, item, propNames))
  );
登录后复制

此函数返回一个包含基于指定属性的唯一对象的数组

解释:

  • 过滤器: 删除满足给定条件的重复对象。
  • findIndex: 返回与指定对象匹配的对象第一次出现的索引

通过利用这些技术,您可以有效地从数组中删除重复的对象,从而使您能够使用干净简洁的数据集。

以上是如何在 JavaScript 中从数组中删除重复的对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板