Javascript 尝试输出应用于数组的数学公式的值失败[Jquery]
我正在尝试使用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
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”);