Javascript 使用简单求和时返回NaN的对象
我有两个值,我试着互相减去。一个来自我的firebase DB,另一个来自用户填写的表单,该表单是表行的总和 这就是我要说明的意思:Javascript 使用简单求和时返回NaN的对象,javascript,html,firebase,firebase-realtime-database,sum,Javascript,Html,Firebase,Firebase Realtime Database,Sum,我有两个值,我试着互相减去。一个来自我的firebase DB,另一个来自用户填写的表单,该表单是表行的总和 这就是我要说明的意思: var total = 0; var HoeveelheidArr=[]; $('#resultTable .Repetities > input ').each(function() { HoeveelheidArr.push($(this).val()); }); for (var i = 0; i <
var total = 0;
var HoeveelheidArr=[];
$('#resultTable .Repetities > input ').each(function() {
HoeveelheidArr.push($(this).val());
});
for (var i = 0; i < HoeveelheidArr.length; i++) { //my arrawy from user input which i extracted
//console.log("setAmount:", setAmount);
// total += parseInt(HoeveelheidArr[i]) * parseInt(setAmount);
total += parseInt(HoeveelheidArr[i]);
}
你知道我做错了什么吗 在首次加载脚本时,事件处理程序之外的代码将只运行一次。因此,
total
将始终为0,startWemosRep
将是一个对象引用,从后者中减去前者将始终得到NaN
。我明白了,将其包含在事件处理程序中可以解决这种情况吗?将全局代码移动到事件处理程序中绝对是一个好主意,虽然我不太清楚你的意图是什么,但是当你的脚本第一次加载时,事件处理程序之外的代码将只运行一次。因此,total
将始终为0,startWemosRep
将是一个对象引用,从后者中减去前者将始终得到NaN
。我明白了,将其包含在事件处理程序中可以解决这种情况吗?将全局代码移动到事件处理程序中绝对是一个好主意,虽然我不知道你的意图是什么,但我知道的还不够多。
var progressList = document.getElementById("progressList");
var wemosRep = function(element, value){ //function update content from elemnt with value
element.textContent = value;
}
//get value from db and auto pass update if change in value
var startWemosRep = firebase.database().ref('Reps/Value');
startWemosRep.on('value', function(snapshot){
wemosRep(progressList,snapshot.val());
});
//my sum generating the error
var progressLeft = parseInt( startWemosRep - total ) ;
// writing the value to the DB Error: Reference.set failed: First argument contains NaN in property 'Exercise.totalRepsLeft'
firebase.database().ref("Exercise").set({
totalRepsLeft: progressLeft,
});