Javascript 如何有效地从POJO中提取某些信息
我经常与firebase合作,并尝试从数据库加载某些信息。原始数据来自查询,并在POJO中返回给我。当返回原始数据时,控制台将打印此信息:Javascript 如何有效地从POJO中提取某些信息,javascript,html,firebase,firebase-realtime-database,Javascript,Html,Firebase,Firebase Realtime Database,我经常与firebase合作,并尝试从数据库加载某些信息。原始数据来自查询,并在POJO中返回给我。当返回原始数据时,控制台将打印此信息: -KhQ76OEK_848CkIFhAq: "-JhQ76OEK_848CkIFhAq" -OhQ76OEK_848CkIFhAq: "-LhQ76OEK_848CkIFhAq" 我需要做的是分别获取每个值(-JhQ76OEK_848CkIFhAq和-LhQ76OEK_848CkIFhAq),然后再次查询实时数据库中的每个值。我可以管理这方面,但我似乎不知
-KhQ76OEK_848CkIFhAq: "-JhQ76OEK_848CkIFhAq"
-OhQ76OEK_848CkIFhAq: "-LhQ76OEK_848CkIFhAq"
我需要做的是分别获取每个值(-JhQ76OEK_848CkIFhAq和-LhQ76OEK_848CkIFhAq),然后再次查询实时数据库中的每个值。我可以管理这方面,但我似乎不知道如何区分这些值
我已经尝试通过执行以下操作获得单个输出:
console.log(vals[0])
但它只是返回未定义的,并将字符串按“
对于大型数据集来说效率很低。有什么想法吗?要访问这些值,可以使用快照的方法迭代快照的子项。可以使用key
属性和val()
方法获取子项的键和值:
firebase.database()
.ref(“部分/路径”)
.一次(“价值”)
。然后((快照)=>{
snapshot.forEach((childSnapshot)=>{
console.log(childSnapshot.key);//孩子的密钥:例如“-KhQ76OEK_848CkIFhAq”
console.log(childSnapshot.val());//子级的值:例如“-JhQ76OEK_848CkIFhAq”
});
});
为了解决这个问题,我所做的就是使用下面的代码将返回的对象
转换为数组
:
var Array = Object.keys(datalist).map(function(k) { return datalist[k] });
工作起来很有魅力,我现在可以运行一个简单的
for
循环,用于数组
您的POJO是什么样子的<代码>{'-KhQ76OEK͐ckifhaq:'-jhq76oek848ckifhaq“,“-ohq76oek848ckifhaq:'-lhq76oek848ckifhaq”}你能在你的问题中包含这个查询吗?想必,你是通过调用val()获得这个对象的
查询的快照结果。@Shanimal yes,即correct@cartant是的,这正是我所做的,这就是查询返回的结果