我需要确定我的结果是否是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个数字可以进行排序和计算...但是如果没有进行检查,有时我的结果将是无限的。
有人可以帮忙吗?
答案 0 :(得分:2)
答案 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)}`);