【发布时间】:2020-09-29 09:00:05
【问题描述】:
我有数组对象,所以我需要组对象具有相同的 BrandId,具有特殊属性。
数组示例:
[
{
"BrandId": "5a52f163b56fbc1164c3f69a",
"ActionCode": "MapNewInsert",
"Total": 126,
"TotalProduct": 127,
"TotalBrand": 2
},
{
"BrandId": "5a52f163b56fbc1164c3f69a",
"ActionCode": "MapNewUpdate",
"Total": 0,
"TotalProduct": 127,
"TotalBrand": 2
},
{
"BrandId": "5a52f163b56fbc1164c3f69a",
"ActionCode": "VerifyUpdate",
"Total": 0,
"TotalProduct": 127,
"TotalBrand": 2
},
{
"BrandId": "5a52f163b56fbc1164c3f69a",
"ActionCode": "VerifyDelete",
"Total": 0,
"TotalProduct": 127,
"TotalBrand": 2
},
{
"BrandId": "5a52f163b56fbc1164c3f69a",
"ActionCode": "Solved",
"Total": 1,
"TotalProduct": 127,
"TotalBrand": 2
},
{
"BrandId": "5c10d62821cdfb2448a10a9c",
"ActionCode": "MapNewInsert",
"Total": 398,
"TotalProduct": 398,
"TotalBrand": 2
}
]
特别的是:
“ActionCode”中的value 变为key,该项目中的Total 变为value 中的key。
示例:ActionCode 有 value 是 MapNewInsert 并且在这个项目中有 Total number 值。那变成:“MapNewInsert”:“398(总值)”
这是我想要的结果:
[
"BrandId": "5a52f163b56fbc1164c3f69a",
"Statistics": {
"MapNewDelete": 0
"MapNewInsert": 126
"MapNewUpdate": 0
"Solved": 1
}
},
{
"BrandId": "5c10d62821cdfb2448a10a9c",
"Statistics": {
"MapNewDelete": 0
"MapNewInsert": 398
"MapNewUpdate": 0
"Solved": 0
}
}
]
非常感谢您的帮助
【问题讨论】:
-
您可以使用
arrayreduce来实现这一目标 -
你能再解释一下
ActionKey的逻辑吗...因为你的输出似乎没有VerifyUpdate或VerifyDelete -
为什么在没有名为
MapNewDelete的操作时会有MapNewDelete属性 -
请更新您的问题并进行一些修正
-
哦,是的,对不起,
MapNewDelete是属性VerifyDelete,因为我必须在完成组后再更改其名称。抱歉我迟到了
标签: javascript object reduce arrayobject