在Javascript中迭代数据库对象并将数据附加到具有特定键值的对象
我正在使用react JS,并将数据以状态存储在Firebase数据库中。我试图遍历posts数组并附加输入数据,即“answer”:“这是对象的答案,其键与传递到postAnswerHandler的id值匹配 我试图使用if语句来说明键是否与变量id匹配,然后将数据附加到该对象 不过,我无法让这个if语句起作用在Javascript中迭代数据库对象并将数据附加到具有特定键值的对象,javascript,reactjs,firebase,firebase-realtime-database,Javascript,Reactjs,Firebase,Firebase Realtime Database,我正在使用react JS,并将数据以状态存储在Firebase数据库中。我试图遍历posts数组并附加输入数据,即“answer”:“这是对象的答案,其键与传递到postAnswerHandler的id值匹配 我试图使用if语句来说明键是否与变量id匹配,然后将数据附加到该对象 不过,我无法让这个if语句起作用 state = { posts: [{"key":"-MRp_IicTzCu5AineeBB",
state = {
posts: [{"key":"-MRp_IicTzCu5AineeBB",
"answer":"hhhh"},
{"key":"-MRpgKN1bFHC3pUSGoqn",
"answer":"gd"},
{"key":"-MRpkG08WrtPyW2rVKPb",
"body":"post 3",
"title":"post 3",
"type":"Credit"}]
}
您的“键”实际上是数组的索引,而不是您要查找的实际键
for (const obj of data) {
if (obj['key'] === id) {
// do something with obj['answer']
}
}
您应该迭代数组中的对象,并将每个名为“key”的键与您正在查找的id进行比较
for (const obj of data) {
if (obj['key'] === id) {
// do something with obj['answer']
}
}
调用变量“key”并不能使其成为键。您必须迭代数组中的对象,并获取每个键的值。类似于for(obj of data){if(obj['key']==id){}@whats_done_真是太棒了,多亏它成功了!现在看它也很有意义。现在我想我可以将数据附加到特定对象,并使用axios.put将其发送到数据库。是的,有意义我假设键是自动传递的,而不是遍历键的字符串值“key”。