gpt4 book ai didi

javascript - 将具有相同键的 JSON 对象合并在一起

转载 作者:可可西里 更新时间:2023-11-01 02:31:43 30 4
gpt4 key购买 nike

我需要将具有相同键的 JSON 对象合并为一个,以便它获得一个对象或数组(无论结果是对象还是数组),它保存键和值的数组

示例 JSON 对象:

[{
"meine_frage": "hier kommt die antwort",
"ne_andere_frage": "ne andere antwort",
"was_willst_du": "alles",
"mehr_zur_auswahl": ["einiges", "vieles und", "g\u00e4r nix"]

}, {
"meine_frage": "tom & jerry",
"ne_andere_frage": "mickey maus",
"was_willst_du": "oder",
"mehr_zur_auswahl": ["manches", "einiges", "vieles und", "g\u00e4r nix"]

}, {
"meine_frage": "dick und doof",
"ne_andere_frage": "minnie muas",
"was_willst_du": "nichts",
"mehr_zur_auswahl": ["g\u00e4r nix"]

}]

结果应该是这样的:

[{
"meine_frage": ["hier kommt die antwort", "tom & jerry", "dick und doof"],
"ne_andere_frage": ["ne andere antwort", "mickey maus", "minnie muas"],
"was_willst_du": ["alles", "oder"],
"mehr_zur_auswahl": ["einiges", "vieles und", "g\u00e4r nix", "manches", "einiges", "vieles und", "g\u00e4r nix"]
}]

一些值已经是数组,而另一些则不是,键是动态生成的,因此假设键名是未知的

我尝试用 $.each 和 for 循环迭代键/值但没有成功,也搜索了网络但找不到类似的,感谢任何帮助

最佳答案

为此,您可以使用 reduce()concat() 方法。

const data = [{"meine_frage":"hier kommt die antwort","ne_andere_frage":"ne andere antwort","was_willst_du":"alles","mehr_zur_auswahl":["einiges","vieles und","gär nix"]},{"meine_frage":"tom & jerry","ne_andere_frage":"mickey maus","was_willst_du":"oder","mehr_zur_auswahl":["manches","einiges","vieles und","gär nix"]},{"meine_frage":"dick und doof","ne_andere_frage":"minnie muas","was_willst_du":"nichts","mehr_zur_auswahl":["gär nix"]}]

const result = data.reduce(function(r, e) {
return Object.keys(e).forEach(function(k) {
if(!r[k]) r[k] = [].concat(e[k])
else r[k] = r[k].concat(e[k])
}), r
}, {})

console.log(result)

关于javascript - 将具有相同键的 JSON 对象合并在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47923791/

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