gpt4 book ai didi

javascript - 具有多个内部对象的数组,提取更深的内部对象作为数组

转载 作者:行者123 更新时间:2023-12-01 07:46:19 24 4
gpt4 key购买 nike

我有什么

{
"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.keysObject.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/

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