为什么我的代码不会将变量的值打印到控制台?

时间:2015-02-26 14:27:43

标签: javascript

总的来说,我正在尝试制作一个接受用户标记的程序,然后吐出均值和中位数。这是我计算机科学课程的作业。

由于某些原因,当我写行时,console.log(avg);显示NaN而不是avg变量的值。我在代码中的其他地方做错了吗?

以下是我的其余代码:

var userMarks = [];
for (var counter = 0; counter < 3; counter++) {
    userMarks.push(prompt("What is your mark?"));
}
console.log(userMarks);


var sum = 0;
for (var i = 0; i < userMarks.length; i++) {
    sum += parseInt(userMarks[i], 3);
}

var avg = sum / userMarks.length;
console.log(avg);

2 个答案:

答案 0 :(得分:8)

parseInt()需要一个radix as a second parameter,当你的意思是10时你指定了3。

sum += parseInt(userMarks[i], 10);

<强> jsFiddle example

  

radix - 2到36之间的整数,表示基数(基数   在数学数字系统中)上述字符串。   为人类常用的十进制数字系统指定10。   始终指定此参数以消除读者的困惑和   保证可预测的行为。产生不同的实现   未指定基数时的结果不同。

答案 1 :(得分:0)

的另一个选择
sum += parseInt(useMarks[i], 10);

你可以这样做

sum += +userMarks[i];

&#39; +&#39;变量名称前的符号将尝试转换为数字。