Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用简单求和时返回NaN的对象_Javascript_Html_Firebase_Firebase Realtime Database_Sum - Fatal编程技术网

Javascript 使用简单求和时返回NaN的对象

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 <

我有两个值,我试着互相减去。一个来自我的firebase DB,另一个来自用户填写的表单,该表单是表行的总和

这就是我要说明的意思:

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,
});