【发布时间】:2021-08-17 01:13:31
【问题描述】:
我正在从 Firebase 获取 JSON 数据,并希望以不同的方式转换数据。我的问题是如何将嵌套对象键值对推送到单个对象中?
这是我的代码...
const postData = [];
for (const key in data) {
postData.push({
id: key,
postComments: data[key].hasOwnProperty('comments')
? {
id: Object.keys(data[key].comments),
...Object.values(data[key].comments),
}
: [],
...data[key]
});
};
console.log(postData);
我目前得到:
{id: "-M_Spc3mBWVkUWKAAk_u", likes: 0, day: 22, month: 3,
comments: {
-M_McCXxZuoF60tmcKCV: {likes: 12, day: 23, month: 3}
-M_Mc93EsXFxA_OS7g6Q: {likes: 234, day: 22, month: 3}
}
postComments: [
0: {likes: 12, day: 23, month: 3}
1: {likes: 234, day: 22, month: 3}
id: ['-M_McCXxZuoF60tmcKCV', '-M_Mc93EsXFxA_OS7g6Q']
]
}
我要输出数据:
{id: "-M_Spc3mBWVkUWKAAk_u", likes: 0, day: 22, month: 3,
comments: {
-M_McCXxZuoF60tmcKCV: {likes: 12, day: 23, month: 3}
-M_Mc93EsXFxA_OS7g6Q: {likes: 234, day: 22, month: 3}
}
postComments: [
0: {id: "-M_McCXxZuoF60tmcKCV", likes: 12, day: 23, month: 3}
1: {id: "-M_Mc93EsXFxA_OS7g6Q", likes: 234, day: 22, month: 3}
]
}
我已经为此苦苦挣扎了几天。任何帮助将不胜感激。谢谢。
【问题讨论】:
-
你的 json 输入数据是什么样子的?
-
能否请您发布原始数据对象?它将更容易弄清楚如何转换数据。
-
在您的“我正在获取”中,
postComments不能有 id 属性,因为它是一个数组。能否请您发布原始数据对象? -
用 cmets obj 更新。很抱歉错过了那个数据点。
标签: javascript json push key-value spread-syntax