gpt4 book ai didi

javascript - 按标签重构嵌套 JSON 数据 - Javascript

转载 作者:行者123 更新时间:2023-12-01 00:56:57 25 4
gpt4 key购买 nike

我有一个包含帖子主题的 JSON 文件:

"topics": [
{
"id": "9551",
"tags": ["tag1", "tag2"],
"title": "title"
},
{
"id": "9552",
"tags": ["tag3"],
"title": "title2"
},
{
"id": "9553",
"tags": ["tag1"],
"title": "title3"
}
]

我想按标签对这些帖子进行排序,如下所示:

 "tags" : {
"tag1": [
{ "id": "9951",
"title": "title"
},
{
"id": "9553",
"title": "title3"
}
],
"tag2": [
{
"id": "9551",
"title": "title"
}
]
}

我不确定上述内容是否有效,但本质上我想要原始数据的有效 JSON 输出,仅按标签排序。

感谢您的建议!

最佳答案

您可以使用 reduce对标签进行分组。创建一个累加器,将每个标签作为。在reduce 内部,循环遍历每个标签。如果已添加 tag,则将 { id, title } 对象推送到数组中。否则,为该标签创建一个新数组,然后推送它。

const topics=[{"id":"9551","tags":["tag1","tag2"],"title":"title"},{"id":"9552","tags":["tag3"],"title":"title2"},{"id":"9553","tags":["tag1"],"title":"title3"}]

const group = topics.reduce((acc, { id, tags, title }) => {
tags.forEach(t => {
acc[t] = acc[t] || [];
acc[t].push({ id, title })
})
return acc;
}, {})

console.log({ tags: group })

关于javascript - 按标签重构嵌套 JSON 数据 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56495891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com