如果变量计算返回" NaN" ,我试图在变量中存储值" 0" p>
如果变量"> 0"
,代码似乎只会执行这是我的代码:
function changeNumber() {
var average = Math.round((list.rating[0].score)/(list.rating[0].votecount));
if (isNaN(average))
return average =0;
console.log("output" +average);
}
所以基本上我从数据库中获取一些数字数据并进行计算" score / votecount" ,它返回某些内容的平均值。如果数据库中的"得分" 和" votecount" 字段不包含任何数据,那么我的计算将返回&#34 ; NaN的" 即可。我想将此" NaN" 更改为数字" 0"。
任何有助于此项运行的帮助都非常感谢。
p.s如果数据库中没有可计算的数字,这是完全正常的,因为这意味着某些东西尚未被投票。 (只是因为你想知道为什么我首先有一个NaN值)
答案 0 :(得分:0)
function changeNumber()
{
var average = Math.round((list.rating[0].score)/(list.rating[0].votecount));
return isNaN(average) ? 0 : average;
}
答案 1 :(得分:0)
// sample initialization
var score = 10;
var votecount = 'abc';
// first do the division
var division = score/votecount;
// check the division if it is NaN
if(isNaN(division))
alert('zero'); // or return 0;
else{
division = Math.round(division); // use division for the rest of the code
alert(division);
}
请注意,如果除法是NaN,Math.round()
将无效。
答案 2 :(得分:0)
首先计算平均值,然后使用Math.round
进行舍入(如果适用):
var num1 = changeNumber(101, 'foo');
var num2 = changeNumber(101, 12);
// using short circuit boolean evaluation
var num3 = Math.round(101/'bar' || 0);
var num4 = Math.round(101/25 || 0);
Helpers.log2Screen('`num1`: ', num1, '<br>`num2`: ', num2,
'<br>`num3`: ', num3, '<br>`num4`: ', num4);
function changeNumber(n1, n2) {
var calc = n1/n2;
return !isNaN(calc) ? Math.round(calc) : 0;
// you can also do this in one line using
// short circuit boolean evaluation (see num3):
// return Math.round(n1/n2 || 0);
}
<script src="http://kooiinc.github.io/JSHelpers/Helpers-min.js"></script>