我刚刚开始使用Firebase,我在迭代数据库对象时遇到了麻烦(即JSON中)。
以下是示例数据
const _ = require ('underscore');
var data ={
"posts": {
"-JRHTHaIs-jNPLXOQivY": {
"author": "gracehop",
"title": "Announcing COBOL, a New Programming Language"
},
"-JRHTHaKuITFIhnj02kE": {
"author": "alanisawesome",
"title": "The Turing Machine"
}
}
}
我试图在表格中显示它,例如:
return <table>
<tr>
<td>author</td>
<td>title</td>
</tr>
{data.map(k=>{
return <tr key={k}>
<td>{k.author}</td>
<td>{k.title}</td>
</tr>
}).bind(this)}
</table>
以前我使用了完全不同的架构(psql + python),并且以不同的方式返回对象,例如:
const _ = require ('underscore');
var data ={
0: {
"-JRHTHaIs-jNPLXOQivY": {
"author": "gracehop",
"title": "Announcing COBOL, a New Programming Language"
},
1: {
"author": "alanisawesome",
"title": "The Turing Machine"
}
}
}
代码工作正常。但是,Object.map似乎不适用于文本值。
我想知道迭代这些数据的最佳方法。我试图使用下划线的mapObject功能,对于每个,我都在寻找适当的文档以迭代这些数据。任何欣赏这一点的建议都将受到高度赞赏。
答案 0 :(得分:0)
"1000"
是一个Array方法;你拥有的是一个物体。您可以使用map
将对象的值作为数组获取,这样您就可以Object.values(data)
。
如果由于浏览器兼容性问题而无法使用Object.values(data).map
,您还可以使用Object.values
获取一系列密钥。然后,您可以执行Object.keys(data)
来检索每个值,例如map
,然后您将获得所需的值数组。