【发布时间】:2020-06-29 15:06:42
【问题描述】:
我正在尝试减少已经减少的数组,并且在第二次减少功能之后我的对象出现问题。我在第二个函数运行之前的对象如下所示:
const object = {
groupA: [
{name: "Adam", age: 25, Job: "Pharmacist", group: 'groupA'},
{name: "Eric", age: 25, Job: "Vet", group: 'groupA'},
{name: "Bob", age: 25, Job: "Pharmacist", group: 'groupA'},
{name: "Peter", age: 25, Job: "Vet", group: 'groupA'},
],
groupB: [
{name: "Adam", age: 25, Job: "Pharmacist", group: 'groupB'},
{name: "Eric", age: 25, Job: "Vet", group: 'groupB'},
{name: "Bob", age: 25, Job: "Pharmacist", group: 'groupB'},
{name: "Peter", age: 25, Job: "Vet", group: 'groupB'},
],
}
如果我想得到这样的结果,我应该使用什么函数。
const object = {
groupA: {
pharmacist: [
{name: "Adam", age: 25, Job: "Pharmacist", group: 'groupA'},
{name: "Bob", age: 25, Job: "Pharmacist", group: 'groupA'},
],
vet: [
{name: "Eric", age: 25, Job: "Vet", group: 'groupA'},
{name: "Peter", age: 25, Job: "Vet", group: 'groupA'},
]
},
groupB: {
pharmacist: [
{name: "Adam", age: 25, Job: "Pharmacist", group: 'groupB'},
{name: "Bob", age: 25, Job: "Pharmacist", group: 'groupB'},
],
vet: [
{name: "Eric", age: 25, Job: "Vet", group: 'groupB'},
{name: "Peter", age: 25, Job: "Vet", group: 'groupB'},
]
},
}
【问题讨论】:
-
嘿@piotr.schaar。如果我假设您的初始数据结构是一个对象数组? (在减少后看起来就像您在问题中所看到的那样)。然后我实际上可以为整个问题提供解决方案,而不仅仅是第二部分。您可以致电
groupBy(input, ["group", "Job"]),它将返回您想要的输出。您也可以将其称为嵌套,例如groupBy(input, ["group", "Job", "age"])- stackoverflow.com/a/60741156/9792594 -
我的代码确实有一个错误,这意味着它只能工作到 2 级深度分组,但现在它可以用于 N 级深度 :) stackoverflow.com/a/60741156/9792594
标签: javascript arrays object reduce