如何不破坏负数NaN | 0

时间:2014-10-18 17:44:29

标签: javascript nan

当试图为NaN弄错时,我也在破坏负数

-0.2|0     //this will always return zero If the number is negative

我想做的是尽可能快地进行粗线内联,尽可能少地询问内容,因为我正在按照我的要求同时将答案设置为数组。

array[i]=(sum)|0

我的总和有时会产生NaN

好的,为了让我的问题更清楚并找到根...当-1不是时,为什么-0.2为假? -0.2不是零!零是假但-0.2小于零-0.2!== 0

2 个答案:

答案 0 :(得分:1)

你必须首先将总和转换为数字(不是整数,这是|的内容),如果它返回NaN,你可以像这样分配零:

array[i]= (+sum) || 0;

答案 1 :(得分:-2)

我不明白为什么你想让它“尽可能短”只是为了在表达式中内联它。好的代码不等于短代码。

本着这种精神,考虑像

这样的东西
function nanToZero( number ) {
    return isNaN( number ) ? 0 : number;
}

// usage
array[i] = nanToZero( sum );