繁体   English   中英

如何从对象数组中过滤一个值并将其减少为每个值一个结果而不重复[重复]

[英]How to filter from an array of objects one value and reduce it to one result per value without duplicates [duplicate]

我正在尝试在 javascript 中构建一种方法,该方法可以从 object 的数组中过滤一个唯一值,并且结果该值只有一次而没有重复

分享我想要实现的片段和更多细节

 const arr = [{ "id": "1", "value": "something" }, { "id": "1", "value": "something" }, { "id": "2", "value": "something" }, { "id": "2", "value": "something" }, { "id": "3", "value": "something" }, { "id": "3", "value": "something" }, { "id": "3", "value": "something" }]; const result = arr.filter(res => res.id).map(ele => ele.id); console.log(result);

如您所见,结果是这样的数组

["1", "1", "2", "2", "3", "3", "3"]

我想得到如下

["1", "2", "3"]

这个想法是每个结果只提取一个 ID。

您可以按如下方式使用Set

 const arr = [ { "id": "1", "value": "something" }, { "id": "1", "value": "something" }, { "id": "2", "value": "something" }, { "id": "2", "value": "something" }, { "id": "3", "value": "something" }, { "id": "3", "value": "something" }, { "id": "3", "value": "something" } ]; const result = [...arr.reduce((set,{id}) => { set.add(id); return set; }, new Set)]; console.log(result);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM