组合 group By,将行转置为对象 属性 并计算行
Combining groupBy, tranpose rows to object property and counting row
我有这个对象数组:
[
{
"vp": "VIHAB",
"situacao": "Analisando manifestação do notificado",
"id": "267"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "234"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "261"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "260"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "265"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "266"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "244"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "243"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "245"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "246"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "247"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "263"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "264"
},
{
"vp": "VIRED",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "253"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "249"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "250"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "252"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "251"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "248"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "237"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "262"
},
{
"vp": "VIRED",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "254"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "259"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "255"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "256"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "257"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "258"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "226"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "236"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "242"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "240"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "241"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "239"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "238"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "221"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "228"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "232"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "233"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "231"
},
{
"vp": "VICAT",
"situacao": "Concluído sem notificação",
"id": "235"
},
{
"vp": "VILOP",
"situacao": "Concluído com proposição de ações corretivas",
"id": "229"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "230"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "223"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "219"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "227"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "222"
},
{
"vp": "VICOR",
"situacao": "Aguardando manifestação de outros gestores",
"id": "164"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "217"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "218"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "166"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "225"
},
{
"vp": "VIRED",
"situacao": "Concluído com proposição de ações corretivas",
"id": "215"
},
{
"vp": "VIRED",
"situacao": "Concluído com proposição de ações corretivas",
"id": "216"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "19"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "171"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "208"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "220"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "212"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "211"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "207"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "12"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "172"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "10"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "167"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "151"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "152"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "153"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "147"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "148"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "154"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "150"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "137"
},
{
"vp": "VIART",
"situacao": "Concluído com proposição de ações corretivas",
"id": "146"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "158"
},
{
"vp": "VICAT",
"situacao": "Concluído sem notificação",
"id": "168"
},
{
"vp": "VIHAB",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "63"
},
{
"vp": "VILOP",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "145"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "122"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "210"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "121"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "209"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "120"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "165"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "169"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "170"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "136"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "66"
},
{
"vp": "VIHAB",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "62"
},
{
"vp": "VIHAB",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "57"
},
{
"vp": "VICAT",
"situacao": "Concluído sem notificação",
"id": "92"
},
{
"vp": "VIGOV",
"situacao": "Concluído sem notificação",
"id": "79"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "29"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "160"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "159"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "143"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "144"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "14"
},
{
"vp": "VILOP",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "80"
},
{
"vp": "VIRED",
"situacao": "Concluído com proposição de ações corretivas",
"id": "114"
},
{
"vp": "VILOP",
"situacao": "Concluído com proposição de ações corretivas",
"id": "113"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "149"
}
]
我需要创建一个新的对象数组,按 'vp' 分组,将“situacao”的值转换为 属性 并计算有多少 'id' 相同同一个 'vp' 的状态 'situacao',像这样:
[
{
"vp": "VIHAB",
"Analisando manifestação do notificado": 1,
"Concluído com proposição de ações corretivas": 5,
"Concluído sem proposição de ações corretivas": 6,
},
{
"vp": "VINOV",
"Concluído com proposição de ações corretivas": 10,
"Concluído sem proposição de ações corretivas": 11,
},
]
有什么办法吗?我对这种组合没有任何解释
我已将您的对象数组分配给数据变量。
var data = [
{
"vp": "VIHAB",
"situacao": "Analisando manifestação do notificado",
"id": "267"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "234"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "261"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "260"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "265"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "266"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "244"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "243"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "245"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "246"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "247"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "263"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "264"
},
{
"vp": "VIRED",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "253"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "249"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "250"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "252"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "251"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "248"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "237"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "262"
},
{
"vp": "VIRED",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "254"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "259"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "255"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "256"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "257"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "258"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "226"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "236"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "242"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "240"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "241"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "239"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "238"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "221"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "228"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "232"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "233"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "231"
},
{
"vp": "VICAT",
"situacao": "Concluído sem notificação",
"id": "235"
},
{
"vp": "VILOP",
"situacao": "Concluído com proposição de ações corretivas",
"id": "229"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "230"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "223"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "219"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "227"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "222"
},
{
"vp": "VICOR",
"situacao": "Aguardando manifestação de outros gestores",
"id": "164"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "217"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "218"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "166"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "225"
},
{
"vp": "VIRED",
"situacao": "Concluído com proposição de ações corretivas",
"id": "215"
},
{
"vp": "VIRED",
"situacao": "Concluído com proposição de ações corretivas",
"id": "216"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "19"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "171"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "208"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "220"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "212"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "211"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "207"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "12"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "172"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "10"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "167"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "151"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "152"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "153"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "147"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "148"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "154"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "150"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "137"
},
{
"vp": "VIART",
"situacao": "Concluído com proposição de ações corretivas",
"id": "146"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "158"
},
{
"vp": "VICAT",
"situacao": "Concluído sem notificação",
"id": "168"
},
{
"vp": "VIHAB",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "63"
},
{
"vp": "VILOP",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "145"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "122"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "210"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "121"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "209"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "120"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "165"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "169"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "170"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "136"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "66"
},
{
"vp": "VIHAB",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "62"
},
{
"vp": "VIHAB",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "57"
},
{
"vp": "VICAT",
"situacao": "Concluído sem notificação",
"id": "92"
},
{
"vp": "VIGOV",
"situacao": "Concluído sem notificação",
"id": "79"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "29"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "160"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "159"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "143"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "144"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "14"
},
{
"vp": "VILOP",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "80"
},
{
"vp": "VIRED",
"situacao": "Concluído com proposição de ações corretivas",
"id": "114"
},
{
"vp": "VILOP",
"situacao": "Concluído com proposição de ações corretivas",
"id": "113"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "149"
}
];
代码为
var result = _.map(_.groupBy(data, x => x.vp), (group) => _.merge({ vp: group[0].vp}, _.countBy(group, x => x.situacao)));
此代码的输出如下所示,
[
{
"vp": "VIHAB",
"Analisando manifestação do notificado": 1,
"Concluído com proposição de ações corretivas": 6,
"Concluído sem proposição de ações corretivas": 3
},
{
"vp": "VIGOV",
"Concluído com proposição de ações corretivas": 4,
"Concluído sem notificação": 1
},
{
"vp": "VINOV",
"Concluído com proposição de ações corretivas": 11,
"Concluído sem proposição de ações corretivas": 16,
"Concluído sem notificação": 6
},
{
"vp": "VICAT",
"Concluído com proposição de ações corretivas": 11,
"Concluído sem proposição de ações corretivas": 11,
"Concluído sem notificação": 3
},
{
"vp": "VIRED",
"Concluído sem proposição de ações corretivas": 2,
"Concluído com proposição de ações corretivas": 3
},
{
"vp": "VILOP",
"Concluído com proposição de ações corretivas": 2,
"Concluído sem proposição de ações corretivas": 2,
"Concluído sem notificação": 4
},
{
"vp": "VICOR",
"Aguardando manifestação de outros gestores": 1
},
{
"vp": "VIMAR",
"Concluído sem proposição de ações corretivas": 7,
"Concluído com proposição de ações corretivas": 6
},
{
"vp": "VIART",
"Concluído com proposição de ações corretivas": 1
}
]
我有这个对象数组:
[
{
"vp": "VIHAB",
"situacao": "Analisando manifestação do notificado",
"id": "267"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "234"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "261"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "260"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "265"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "266"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "244"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "243"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "245"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "246"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "247"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "263"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "264"
},
{
"vp": "VIRED",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "253"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "249"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "250"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "252"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "251"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "248"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "237"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "262"
},
{
"vp": "VIRED",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "254"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "259"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "255"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "256"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "257"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "258"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "226"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "236"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "242"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "240"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "241"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "239"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "238"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "221"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "228"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "232"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "233"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "231"
},
{
"vp": "VICAT",
"situacao": "Concluído sem notificação",
"id": "235"
},
{
"vp": "VILOP",
"situacao": "Concluído com proposição de ações corretivas",
"id": "229"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "230"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "223"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "219"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "227"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "222"
},
{
"vp": "VICOR",
"situacao": "Aguardando manifestação de outros gestores",
"id": "164"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "217"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "218"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "166"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "225"
},
{
"vp": "VIRED",
"situacao": "Concluído com proposição de ações corretivas",
"id": "215"
},
{
"vp": "VIRED",
"situacao": "Concluído com proposição de ações corretivas",
"id": "216"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "19"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "171"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "208"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "220"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "212"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "211"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "207"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "12"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "172"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "10"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "167"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "151"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "152"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "153"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "147"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "148"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "154"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "150"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "137"
},
{
"vp": "VIART",
"situacao": "Concluído com proposição de ações corretivas",
"id": "146"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "158"
},
{
"vp": "VICAT",
"situacao": "Concluído sem notificação",
"id": "168"
},
{
"vp": "VIHAB",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "63"
},
{
"vp": "VILOP",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "145"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "122"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "210"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "121"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "209"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "120"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "165"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "169"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "170"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "136"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "66"
},
{
"vp": "VIHAB",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "62"
},
{
"vp": "VIHAB",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "57"
},
{
"vp": "VICAT",
"situacao": "Concluído sem notificação",
"id": "92"
},
{
"vp": "VIGOV",
"situacao": "Concluído sem notificação",
"id": "79"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "29"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "160"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "159"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "143"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "144"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "14"
},
{
"vp": "VILOP",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "80"
},
{
"vp": "VIRED",
"situacao": "Concluído com proposição de ações corretivas",
"id": "114"
},
{
"vp": "VILOP",
"situacao": "Concluído com proposição de ações corretivas",
"id": "113"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "149"
}
]
我需要创建一个新的对象数组,按 'vp' 分组,将“situacao”的值转换为 属性 并计算有多少 'id' 相同同一个 'vp' 的状态 'situacao',像这样:
[
{
"vp": "VIHAB",
"Analisando manifestação do notificado": 1,
"Concluído com proposição de ações corretivas": 5,
"Concluído sem proposição de ações corretivas": 6,
},
{
"vp": "VINOV",
"Concluído com proposição de ações corretivas": 10,
"Concluído sem proposição de ações corretivas": 11,
},
]
有什么办法吗?我对这种组合没有任何解释
我已将您的对象数组分配给数据变量。
var data = [
{
"vp": "VIHAB",
"situacao": "Analisando manifestação do notificado",
"id": "267"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "234"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "261"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "260"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "265"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "266"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "244"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "243"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "245"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "246"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "247"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "263"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "264"
},
{
"vp": "VIRED",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "253"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "249"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "250"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "252"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "251"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "248"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "237"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "262"
},
{
"vp": "VIRED",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "254"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "259"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "255"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "256"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "257"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "258"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "226"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "236"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "242"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "240"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "241"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "239"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "238"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "221"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "228"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "232"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "233"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "231"
},
{
"vp": "VICAT",
"situacao": "Concluído sem notificação",
"id": "235"
},
{
"vp": "VILOP",
"situacao": "Concluído com proposição de ações corretivas",
"id": "229"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "230"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "223"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "219"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "227"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "222"
},
{
"vp": "VICOR",
"situacao": "Aguardando manifestação de outros gestores",
"id": "164"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "217"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "218"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "166"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "225"
},
{
"vp": "VIRED",
"situacao": "Concluído com proposição de ações corretivas",
"id": "215"
},
{
"vp": "VIRED",
"situacao": "Concluído com proposição de ações corretivas",
"id": "216"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "19"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "171"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "208"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "220"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "212"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "211"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "207"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "12"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "172"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "10"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "167"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "151"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "152"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "153"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "147"
},
{
"vp": "VICAT",
"situacao": "Concluído com proposição de ações corretivas",
"id": "148"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "154"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "150"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "137"
},
{
"vp": "VIART",
"situacao": "Concluído com proposição de ações corretivas",
"id": "146"
},
{
"vp": "VINOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "158"
},
{
"vp": "VICAT",
"situacao": "Concluído sem notificação",
"id": "168"
},
{
"vp": "VIHAB",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "63"
},
{
"vp": "VILOP",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "145"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "122"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "210"
},
{
"vp": "VIMAR",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "121"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "209"
},
{
"vp": "VIMAR",
"situacao": "Concluído com proposição de ações corretivas",
"id": "120"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "165"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "169"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "170"
},
{
"vp": "VIGOV",
"situacao": "Concluído com proposição de ações corretivas",
"id": "136"
},
{
"vp": "VIHAB",
"situacao": "Concluído com proposição de ações corretivas",
"id": "66"
},
{
"vp": "VIHAB",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "62"
},
{
"vp": "VIHAB",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "57"
},
{
"vp": "VICAT",
"situacao": "Concluído sem notificação",
"id": "92"
},
{
"vp": "VIGOV",
"situacao": "Concluído sem notificação",
"id": "79"
},
{
"vp": "VINOV",
"situacao": "Concluído sem notificação",
"id": "29"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "160"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "159"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "143"
},
{
"vp": "VILOP",
"situacao": "Concluído sem notificação",
"id": "144"
},
{
"vp": "VINOV",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "14"
},
{
"vp": "VILOP",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "80"
},
{
"vp": "VIRED",
"situacao": "Concluído com proposição de ações corretivas",
"id": "114"
},
{
"vp": "VILOP",
"situacao": "Concluído com proposição de ações corretivas",
"id": "113"
},
{
"vp": "VICAT",
"situacao": "Concluído sem proposição de ações corretivas",
"id": "149"
}
];
代码为
var result = _.map(_.groupBy(data, x => x.vp), (group) => _.merge({ vp: group[0].vp}, _.countBy(group, x => x.situacao)));
此代码的输出如下所示,
[
{
"vp": "VIHAB",
"Analisando manifestação do notificado": 1,
"Concluído com proposição de ações corretivas": 6,
"Concluído sem proposição de ações corretivas": 3
},
{
"vp": "VIGOV",
"Concluído com proposição de ações corretivas": 4,
"Concluído sem notificação": 1
},
{
"vp": "VINOV",
"Concluído com proposição de ações corretivas": 11,
"Concluído sem proposição de ações corretivas": 16,
"Concluído sem notificação": 6
},
{
"vp": "VICAT",
"Concluído com proposição de ações corretivas": 11,
"Concluído sem proposição de ações corretivas": 11,
"Concluído sem notificação": 3
},
{
"vp": "VIRED",
"Concluído sem proposição de ações corretivas": 2,
"Concluído com proposição de ações corretivas": 3
},
{
"vp": "VILOP",
"Concluído com proposição de ações corretivas": 2,
"Concluído sem proposição de ações corretivas": 2,
"Concluído sem notificação": 4
},
{
"vp": "VICOR",
"Aguardando manifestação de outros gestores": 1
},
{
"vp": "VIMAR",
"Concluído sem proposição de ações corretivas": 7,
"Concluído com proposição de ações corretivas": 6
},
{
"vp": "VIART",
"Concluído com proposição de ações corretivas": 1
}
]