如何从数组中消除重复的对象
您的查询围绕有效地从对象内的数组中删除重复的对象进行。让我们探索一些有效的技术来实现这一目标。
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)) );
此函数返回一个包含基于指定属性的唯一对象的数组
解释:
通过利用这些技术,您可以有效地从数组中删除重复的对象,从而使您能够使用干净简洁的数据集。
以上是如何在 JavaScript 中从数组中删除重复的对象?的详细内容。更多信息请关注PHP中文网其他相关文章!