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



我使用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"}]
}
postAnswerHandler = ( answer,id ) => {

const data = this.state.posts;
for (var key in data) {

if (key === id) {
*** APPEND DATA HERE***
}; 
var obj = data[key];
var obj_1 = JSON.stringify(obj);

for (var prop in obj) {
if(obj.hasOwnProperty(prop)){


}
}

}
const postData = JSON.stringify(this.state.posts);

您的'key'实际上是数组的索引,而不是您要查找的实际键。

你应该遍历数组中的对象,并将每个名为"key"的键与你正在寻找的id进行比较。

for (const obj of data) {
if (obj['key'] === id) {
// do something with obj['answer']  
}
}

最新更新