JavaScript:推送嵌套对象键值对
我从Firebase获取JSON数据,并希望以不同的方式转换数据。我的问题是如何将嵌套对象键值对推入单个对象 这是我的密码JavaScript:推送嵌套对象键值对,javascript,json,push,key-value,spread-syntax,Javascript,Json,Push,Key Value,Spread Syntax,我从Firebase获取JSON数据,并希望以不同的方式转换数据。我的问题是如何将嵌套对象键值对推入单个对象 这是我的密码 const postData = []; for (const key in data) { postData.push({ id: key, postComments: data[key].hasOwnProperty('comments') ? { id: Object.keys(data[key].comments),
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}
]
}
我已经为此挣扎了几天。任何帮助都将不胜感激。谢谢。谢谢你让我思考你的.map答案。我不知道我怎么没想到。我一定是累坏了,哈哈。这是我一直在寻找的答案
for (const key in data) {
postData.push({
id: key,
postComments: data[key].hasOwnProperty("comments")
? Object.entries(data[key].comments).map((k) => ({
id: k[0],
...k[1],
}))
: [],
...data[key],
});
}
您的json输入数据是什么样子的?您可以发布原始数据对象吗?这将使您更容易了解如何转换数据。在“我当前正在获取”
postComments
中,不能有id属性,因为它是一个数组。你能发布原始数据对象吗?用注释obj更新。很抱歉,丢失了该数据点。