我有什么
{
"1zkhj45kjb3h3jj27777fjd": {"-L7hgtdyYUYY56":{ email: "abc@gmail.com",name:"abc" } },
"1zkhj45kjb3h898fj7fjddk": {"-L7hgtdyYUYY56":{ email: "dumy@gmail.com",name:"dumy" } }
}
我做了什么
const snapshot = snap.val()
const items = Object.values(snapshot)
现在 items
看起来像
[
{"-L7hgtdyYUYY56":{ email: "abc@gmail.com",name:"abc" } },
{"-L7hgtdyYUYY56":{ email: "dumy@gmail.com",name:"dumy" } }
]
但是我想要
[
{ email: "abc@gmail.com",name:"abc" } ,
{ email: "dumy@gmail.com",name:"dumy" }
]
我已经尝试了所有其他策略,例如 Object.keys
、Object.enteries
。
如果我再次调用 object.values
,它会给出相同的结果。
JavaScript 怎么做? 我是对 native 和 javascript 使用react的新手。
谢谢!
最佳答案
使用 Array.flatMap()
与 Object.values()
获取内部对象数组:
const items = {
"1zkhj45kjb3h3jj27777fjd": {"-L7hgtdyYUYY56":{ email: "abc@gmail.com",name:"abc" } },
"1zkhj45kjb3h898fj7fjddk": {"-L7hgtdyYUYY56":{ email: "dumy@gmail.com",name:"dumy" } }
}
const result = Object.values(items).flatMap(Object.values)
console.log(result)
如果Array.flatMap()
不支持,使用 Array.map()
反而。但是,结果将是一个数组数组,因此您需要将其展平。您可以通过将数组的数组扩展到 Array.concat()
来展平它:
const items = {
"1zkhj45kjb3h3jj27777fjd": {"-L7hgtdyYUYY56":{ email: "abc@gmail.com",name:"abc" } },
"1zkhj45kjb3h898fj7fjddk": {"-L7hgtdyYUYY56":{ email: "dumy@gmail.com",name:"dumy" } }
}
const result = [].concat(...Object.values(items).map(Object.values))
console.log(result)
关于javascript - 具有多个内部对象的数组,提取更深的内部对象作为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55081738/