【发布时间】:2018-11-25 16:47:44
【问题描述】:
在 TypeScript 中,假设我有一个 Person 对象数组。
我们有一个名为 myPersons 的数组:
[
{'age': '25', 'name': 'mike'},
{'age': '25', 'name': 'john'},
{'age': '25', 'name': 'charles'},
{'age': '30', 'name': 'melanie'},
{'age': '30', 'name': 'cindy'}
]
我想使用 Lodash 或一些不那么混乱的方法来解析这个数组,以获取一个对象数组,其中 Object 有一个键 'age' 映射到一个字符串和一个键 'names' 映射到一个字符串数组。
所以最终生成的数组如下所示:
[
{'age': '25', 'names': ['john', 'mike', 'charles']},
{'age': '30', 'names': ['cindy', 'melanie']}
]
我可以使用一些混乱的 for 循环来完成上述操作,但我是前端开发的新手,我感觉这不是最好的方法。任何建议或指导将不胜感激。
【问题讨论】:
-
如果你想使用 lodash 来完成这个任务,你可以这样做:
Object.entries(_.groupBy(myPersons, a=>a.age)).map(a=> ({age:a[0], names: a[1].map(entry=>entry.name)}))
标签: arrays typescript object lodash