检查数字是否尽可能短

时间:2019-02-09 14:03:23

标签: javascript ecmascript-6

我需要确定我的结果是否是1到100之间的数字,而不是无穷大,但有时我会得到该结果。我如何检查结果是否为无限。

我知道我可以使用if语句

x =Math.floor(1/1)
if(x == 1/0){
return 0}
else{
return x}

但是我需要一行

x =Math.floor(1/1)(1/0 ? "0" : x);

我尝试这样做,但是我有一个错误...我想念什么? 我需要它,因为我将它用于循环语句,并且大约有500个数字可以进行排序和计算...但是如果没有进行检查,有时我的结果将是无限的。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

Infinity

console.log((1/0)=== Infinity)
console.log((1/10)=== Infinity)

答案 1 :(得分:2)

您可以使用Number.isFinite

let x = Math.floor(1/1);
console.log(Number.isFinite(x)? x :0);

console.log(1/0 === Infinity);
console.log(1/0 === -Infinity); //fails for -Infinity
console.log(-1/0 === -Infinity); //number has to be -ve for this to work

//Takes care of both -Infinity and Infinity
console.log(`Number.isFinite() for -Infinity ${Number.isFinite(-Infinity)}`);
console.log(`Number.isFinite() for Infinity ${Number.isFinite(Infinity)}`);

//Returns false for NaN, null and undefined
console.log(`Number.isFinite() for NaN ${Number.isFinite(NaN)}`);
console.log(`Number.isFinite() for null ${Number.isFinite(null)}`);
console.log(`Number.isFinite() for undefined ${Number.isFinite(undefined)}`);