javascript - for 循环遍历 index[0] 两次
问题描述
我正在使用 for 循环遍历一个数组并将所有值相加。一切正常,但由于某种原因,它通过 index[0] 两次(附加控制台的屏幕截图)。有人可以帮忙吗?我只想通过 index[0] 一次。我正在使用javascript进行反应。
ffunction getCo2consump(){
var co2Consump =[]; //this needs to be updated to be the co2consump from db later
//get consump from databse
var combinedConsump = 0;
var i;
database
.collection("Users")
.doc(email)
.collection("ChosenChallenge")
.get()
.then((snapshot) => {
snapshot.docs.forEach((doc) => {
co2Consump.push(doc.data().Co2Consumption);
for (i=0; i< co2Consump.length; i++){
console.log("this is i", i);
console.log("this is co2consump in loop", co2Consump[i]);
console.log(typeof co2Consump[i]);
combinedConsump = combinedConsump + co2Consump[i];
console.log(typeof combinedConsump);
}
});
console.log("this is co2Consump array", co2Consump)
console.log("this is combined", combinedConsump)
return combinedConsump;
})
}
解决方案
for
循环位于循环内部forEach
,因此它将i=0
为您集合中的每一项设置。您需要计算您的总 CO2 消耗量forEach
。
function getCo2consump(){
var co2Consump =[]; //this needs to be updated to be the co2consump from db later
//get consump from databse
var combinedConsump = 0;
var i;
database
.collection("Users")
.doc(email)
.collection("ChosenChallenge")
.get()
.then((snapshot) => {
snapshot.docs.forEach((doc) => {
co2Consump.push(doc.data().Co2Consumption);
}
});
co2Consump.forEach(e=>combinedConsump+e);
console.log("this is co2Consump array", co2Consump)
console.log("this is combined", combinedConsump)
return combinedConsump;
})
}
推荐阅读
- java - JdbcSQLException:唯一索引或主键违规
- android - 为什么 Android 的 allowBackup 不起作用?
- php - 验证 reCaptcha v2 复选框是否已勾选
- angular - 为什么我的 Angular 代码没有按顺序打印/运行?
- php - 将 xampp 升级到最新版本和 php 7.1,但 php 在我的计算机中仍然是 php 5.6
- highcharts - x 轴上标签的宽度,在 Highcharts 中具有分组类别
- c - 无法连接到 Twitch IRC 服务器,IP 地址问题,C 语言
- python - 具有自定义持续时间的计时器/倒计时?
- c# - OpenXmlSDK 无法读取手动创建的 xlsx 文件:'指定的包无效。主要部分不见了。
- typescript - 我如何从一个安静且统一的 API 中消费?