当试图为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
答案 0 :(得分:1)
你必须首先将总和转换为数字(不是整数,这是|
的内容),如果它返回NaN
,你可以像这样分配零:
array[i]= (+sum) || 0;
答案 1 :(得分:-2)
我不明白为什么你想让它“尽可能短”只是为了在表达式中内联它。好的代码不等于短代码。
本着这种精神,考虑像
这样的东西function nanToZero( number ) {
return isNaN( number ) ? 0 : number;
}
// usage
array[i] = nanToZero( sum );