我有这样的代码:
firebase.database().ref(...).on('value'.function(snapshot) {
snapshot.forEach(function(minisnapshot) {
var counter = 0;
alert("test");
//
minisnapshot.child("books").foreach(function(mainsnapshot) {
counter +=0.5;
var data = {
price:mainsnapshot.child("price").val() * counter;
...
}
}
}
}
格式如下所示。问题是,对于书籍的每个循环,计数器再次设置为0。它正在执行var counter = 0
,因此计数器总是0.5(我希望它是0.5,1,1.5 ..等等)。
如何实现这种仅针对books
ForEach的计数器?
答案 0 :(得分:0)
这里的问题是你在forEach循环中初始化计数器变量,你只需要把它带到循环之外。您的代码将是:
firebase.database().ref(...).on('value'.function(snapshot) {
var counter = 0;
snapshot.forEach(function(minisnapshot) {
alert("test");
//
minisnapshot.child("books").foreach(function(mainsnapshot) {
counter +=0.5;
var data = {
price:mainsnapshot.child("price").val() * counter;
...
}
}
}
}