在Javascript中迭代数据库对象并将数据附加到具有特定键值的对象

在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",

我正在使用react JS,并将数据以状态存储在Firebase数据库中。我试图遍历posts数组并附加输入数据,即“answer”:“这是对象的答案,其键与传递到postAnswerHandler的id值匹配

我试图使用if语句来说明键是否与变量id匹配,然后将数据附加到该对象

不过,我无法让这个if语句起作用

 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”。