Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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 尝试输出应用于数组的数学公式的值失败[Jquery]_Javascript_Jquery_Math_Jquery Mobile - Fatal编程技术网

Javascript 尝试输出应用于数组的数学公式的值失败[Jquery]

Javascript 尝试输出应用于数组的数学公式的值失败[Jquery],javascript,jquery,math,jquery-mobile,Javascript,Jquery,Math,Jquery Mobile,我正在尝试使用jQuery获取变异系数计算器,但似乎无法让它输出正确的答案 我当前的代码: var fields = $('#cvform').serializeArray(); var num = 0; var mean = 0; var m2 = 0; var total = 0; jQuery.each(fields, function(i, field){ if (field.value &g

我正在尝试使用jQuery获取变异系数计算器,但似乎无法让它输出正确的答案

我当前的代码:

var fields = $('#cvform').serializeArray();
        var num = 0;
        var mean = 0;
        var m2 = 0;
        var total = 0;
        jQuery.each(fields, function(i, field){
        if (field.value > 0) {
            num++;
            var delta=(field.value-mean);
            var mean=(mean+delta/num);
            var m2=(m2+delta*(field.value-mean));
            var total=(total+field.value);
        };
        });
        var cov=(((Math.sqrt(m2/(num-1)))/(total/num))*100);
        $("<span>Coefficient of Variation: " + delta + m2 + num + total + cov +  "</span>").appendTo('#cvdisplay');
var fields=$('#cvform').serializeArray();
var num=0;
var均值=0;
var m2=0;
var合计=0;
每个(字段,函数(i,字段){
如果(field.value>0){
num++;
var delta=(字段值平均值);
var平均值=(平均值+增量/数值);
var m2=(m2+delta*(字段值平均值));
var total=(总计+字段值);
};
});
var cov=((数学sqrt(m2/(num-1))/(总计/num))*100);
$(“变异系数:“+delta+m2+num+total+cov+”)。附录(“#cvdisplay”);

当我尝试输出后面的值时,它告诉我delta未定义,mean m2和total=0,num输出正确。Cov只是作为NaN输出。#cvform数组只是文本输入,只能是数字。有人能给我指出让这个函数运行的正确方向吗?

在函数中声明delta,因此它在for循环外不可见。将其声明移出每个块,就会找到它

var fields = $('#cvform').serializeArray();
    var num = 0,
        mean = 0,
        m2 = 0,
        total = 0,
        delta = 0;
    jQuery.each(fields, function(i, field){
    if (field.value > 0) {
        num++;
        delta=(field.value-mean);
        mean=(mean+delta/num);
        m2=(m2+delta*(field.value-mean));
        total=(total+field.value);
    };
    });
    var cov=(((Math.sqrt(m2/(num-1)))/(total/num))*100);
    $("<span>Coefficient of Variation: " + (delta + m2 + num + total + cov) +  "</span>").appendTo('#cvdisplay');
var fields=$('#cvform').serializeArray();
var num=0,
平均值=0,
m2=0,
总计=0,
δ=0;
每个(字段,函数(i,字段){
如果(field.value>0){
num++;
delta=(字段值平均值);
平均值=(平均值+增量/数值);
m2=(m2+delta*(字段值平均值));
总计=(总计+字段值);
};
});
var cov=((数学sqrt(m2/(num-1))/(总计/num))*100);
$(“变异系数:+(增量+m2+num+total+cov)+”)。附录(“#cvdisplay”);

在函数中声明delta,因此它在for循环外不可见。将其声明移出每个块,就会找到它

var fields = $('#cvform').serializeArray();
    var num = 0,
        mean = 0,
        m2 = 0,
        total = 0,
        delta = 0;
    jQuery.each(fields, function(i, field){
    if (field.value > 0) {
        num++;
        delta=(field.value-mean);
        mean=(mean+delta/num);
        m2=(m2+delta*(field.value-mean));
        total=(total+field.value);
    };
    });
    var cov=(((Math.sqrt(m2/(num-1)))/(total/num))*100);
    $("<span>Coefficient of Variation: " + (delta + m2 + num + total + cov) +  "</span>").appendTo('#cvdisplay');
var fields=$('#cvform').serializeArray();
var num=0,
平均值=0,
m2=0,
总计=0,
δ=0;
每个(字段,函数(i,字段){
如果(field.value>0){
num++;
delta=(字段值平均值);
平均值=(平均值+增量/数值);
m2=(m2+delta*(字段值平均值));
总计=(总计+字段值);
};
});
var cov=((数学sqrt(m2/(num-1))/(总计/num))*100);
$(“变异系数:+(增量+m2+num+total+cov)+”)。附录(“#cvdisplay”);