javascript - 如何获取路径未知的嵌套对象的值?
问题描述
最初,我通过使用以下代码映射对象数组([{}, {}, {}]
)来渲染组件:
let todoComponents = allTodos.map(item => <Todos key={item.id} item={item} handleChange={handleChange}/>)
但是,这不适用于我从具有不同数据结构的 Firebase 获取数据的单独项目。在其中,每个对象都有一个唯一的名称。
[{
"-M8CpcbvDriZpw4sc4IW" : {
"completed" : false,
"id" : "-M8CpcbvDriZpw4sc4IW",
"text" : "Get Comic Book"
},
"-M8Cpku0PCNu0_Eajtuu" : {
"completed" : false,
"id" : "-M8Cpku0PCNu0_Eajtuu",
"text" : "Take out Trash"
}
}]
问题是.map
不知道在哪里寻找item
. 在第一个示例中,.map
寻找一个数组 -> 对象(带有值)。这不适用于来自 firebase 的数据,因为数组 -> 对象 -> 对象(带有值)。在不知道嵌套对象中的确切路径的情况下,如何告诉.map
跳过额外的对象?
解决方案
如果您调用从 firebase 获得的对象,那么我们说数据:
const obj = data[0]; // i am assuming there is only one object in the array
const allTodos = Object.values(obj); // allTodos is now an array of todos and you can use your original code
推荐阅读
- c# - C# 和 Powershell,从 FTP 下载文件
- reactjs - 使用 React 钩子触发具有副作用的事件,例如 onClick() 调用 fetch()
- c# - 如何将 xml 文件的原始内容 raw 插入到 aspx 页面?这样做是不是渎职?
- javascript - 将 STL 文件存储在 S3 存储桶中以供 ASP.NET Core MVC 视图中的 STL Viewer javascript 插件呈现
- css - Firefox 上按钮与图像图标的垂直对齐
- android - 单击 tabLayout 时启用查看寻呼机单击功能
- javascript - 如何在 TestCafe 中的测试中共享测试文件之间的全局变量?
- django - 活动状态和城市仅在 django 模板 ForeignKey 中显示
- bash - JQ 选择和传递参数
- regex - POSIX 正则表达式中的环视以匹配除最后一个之外的所有空格(对于 gsub)