【发布时间】:2018-05-22 19:12:50
【问题描述】:
我想格式化:
[
{
"id": 1,
"location": {
"id": 1,
"title": "location 1"
},
},
{
"id": 2,
"location": {
"id": 1,
"title": "location 1"
},
},
{
"id": 3,
"location": {
"id": 2,
"title": "location 2"
},
}
]
收件人:
[
{
"id": 1,
"title": "location 1",
"items": [
{
"id": 1
},
{
"id": 2
}
]
},
{
"id": 2,
"title": "location 2",
"items": [
{
"id": 3
}
]
}
]
更新: 根据您的回复,我得出:
const result = _(items)
.groupBy(x => x.location.id)
.map((value, key) => ({location: key, items: value}))
.value();
这可行,但项目对象仍然包含位置属性,并且位置仅维护其 id 属性。是否需要将所有属性添加到 groupBy 中?
我这样做的原因是因为我想过滤项目属性,但显示按位置分组的项目。
【问题讨论】:
-
你有什么尝试吗?我看到了 lodash 标签。
-
请展示您尝试过的内容。 Stackoverflow 不是免费的代码编写服务
-
嗨,Vincent,我想我之前也问过类似的问题,请查看:stackoverflow.com/questions/28220367/… 该问题与 underscore.js 有关,但也许它仍然有帮助。
-
您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只会在发布者已经尝试自己解决问题时提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出以及您实际获得的输出(控制台输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQ 和How to Ask。
标签: javascript json lodash