我具有以下简化结构:
[
{
"ClientId": 512,
"ProductId": 7779,
"Date": "2019-01-01",
"Quantity": 20.5,
"Value": 10.5
},
{
"ClientId": 512,
"ProductId": 7779,
"Date": "2019-02-01",
"Quantity": 15.5,
"Value": 11.2
},
...
]
它一直持续到12月,并且一年中的其他月份都有其他ProductsId
个。我想要的是“旋转”它,而又不会丢失对象引用,并且看起来像这样:
我正在使用Angular,感谢它能做的任何帮助。
答案 0 :(得分:1)
@Shilly的注释使我实现了一个解决方案,使用productId
作为键将对象的数组简化为一个对象,添加剩余的值,然后将其重新映射回数组。可能不是最好的,但是有效。
var o = this.products.reduce((prev, cur) => {
prev[cur.ProductId] = prev[cur.ProductId] || [];
prev[cur.ProductId].push(cur);
return prev;
}, {});
this.valueWithMonths = Object.keys(o).map((k) => {
return { productId: +k, values: o[k] };
});