首先感谢您抽出宝贵时间。我正在研究用于啤酒制作的IBU计算器。请参阅下面的评论。 parseB是一个文本输入,转换为一个数字,我看到iofFinal是一个数字,而inBU [i]也是一个数字。为什么回归南?
var AAU=[];
var og=1.050;
for(var i=0;i<6;i++){
util[i]=(1.65*Math.pow(0.000125, og-1))*(1-Math.exp(-0.04*parseB[i]))/4.15;;
}
function aau(){
for(var i=0;i<6;i++){
AAU[i]=weight[i]*alpha[i];
}
return AAU;
}
function ibu(){
var alphaAcid=aau();
var inBU=[];
var ibuFinal;
for(var i=0;i,alphaAcid.length;i++){
inBU[i]=alphaAcid[i]*util[i]*75/batchSize;
ibuFinal+=inBU[i];//returns NaN for some reason!!
}
alert(ibuFinal);
}
ibu();
答案 0 :(得分:1)
您永远不会定义ibuFinal
,所以它是undefined
。
type-coercion in JavaScript's addition表明undefined + 1
(或任何数字)为NaN
。 (在EMCAScript术语中,ToNumber(undefined)
为NaN
,NaN
加上任何内容均为NaN
。)
确保将ibuFinal
初始化为零:var ibuFinal = 0;