【发布时间】:2017-07-31 09:19:10
【问题描述】:
我有一个 json 列表,我正在尝试用两个键重新组合此地图中的对象。目前我只使用 lodash groupBy 通过一个键成功分组,但我无法找到正确的方法来创建 row 键并将大小/数量分组到这个新数组中。我可以在我的代码中使用 ES6 或 lodash
const colorsMap= _.groupBy(colors, 'Id');
我的初始 json 看起来像这样:
colors = [
{
"Id": "1",
"color": "red",
"size": "10"
"QTY": "2000"
"ref": "tr"
},
{
"Id": "1",
"color": "red",
"size": "25"
"QTY": "3000"
"ref": "tr"
},
{
"Id": "1",
"color": "blue",
"size": "15"
"QTY": "2050"
"ref": "gt",
},
{
"Id": "2",
"color": "red",
"size": "18"
"QTY": "2010"
"ref": "tt"
},
]
我正在尝试拥有这样的东西
[
"1": [
{
"Id": "1",
"color": "red",
"row": [
{
"size": "10"
"QTY": "2000"
},
{
"size": "25"
"QTY": "3000"
},
{
"size": "15"
"QTY": "0"
}
],
"ref": "tr"
},
{
"Id": "1",
"color": "blue",
"row": [
{
"size": "10"
"QTY": "0"
},
{
"size": "25"
"QTY": "0"
},
{
"size": "15"
"QTY": "2050"
}
],
"ref": "gt",
}
],
"2": [
{
"Id": "2",
"color": "red",
"row": [
{
"size": "18"
"QTY": "2010"
}
],
"ref": "tt"
}
]
]
【问题讨论】:
-
你尝试了什么?
-
colorsMap= _.groupBy(colors, 'Id')然后在 colorsMap 我做了一个 forEach 但无法在不同的键上创建行属性
标签: typescript ecmascript-6 lodash