【发布时间】:2021-02-20 08:56:05
【问题描述】:
我正在努力实现以下目标: 假设您有一个对象数组,如下所示:
[{familyName: "Winston", data: [{},{}]}, {familyName: "Winston", data: [{},{}]}, {familyName: "Winston", data: [{},{}]}, {familyName: "Levi", data: [{},{}]}, {familyName: "Levi", data: [{},{}]}]
我想要实现的是将每个姓氏分组到一个新对象中,该对象将包含同一姓氏的所有数据。例如:
[ { familyName: "Winston", data:[{},{},{},{},{},{}] }, { familyName: "Levi", data: [{},{},{},{}] } //new array will contain the combined data objects
所以,最后,我将有一个数组,其中每个唯一属性都有一个对象 + 该特定属性的所有数据对象的总和。 我设法通过创建一个“模板数组”然后将其推送来实现这一点:
for (let name of array) {
for (let property of templateArray) {
if (name.familyName === property.familyName) {
property.data.push(name)
}
}
}
我希望找到一个更优雅、更高效的解决方案,甚至可能无需事先创建模板数组。有没有? 谢谢!
【问题讨论】:
标签: javascript arrays javascript-objects