如何用JavaScript单行语句判断除法结果为NaN/Infinity时赋值为0
需求说明
需要通过JavaScript单行语句实现如下赋值逻辑:
- 计算表达式
this.dealDispositionFormFields.terminationPayment / this.metricsData["remainingObligation"]的结果 - 若结果为非数值(NaN)、正无穷(Infinity)或负无穷(-Infinity),则变量
this.terminationPaymentPercentageOfTotalObligation赋值为0 - 若结果为有效有限数值,保留原需求中乘100后四舍五入取整的逻辑赋值
单行实现代码
this.terminationPaymentPercentageOfTotalObligation = Number.isFinite(this.dealDispositionFormFields.terminationPayment / this.metricsData["remainingObligation"]) ? Math.round((this.dealDispositionFormFields.terminationPayment / this.metricsData["remainingObligation"]) * 100) : 0;
逻辑说明
Number.isFinite()方法可同时校验数值非NaN、非正负无穷,无需拆分多个判断条件,逻辑简洁- 采用三元运算符完成分支判断,整段逻辑仅用一行语句即可完成,符合需求
- 完全兼容原示例中百分比四舍五入取整的计算规则
内容的提问来源于stack exchange,提问作者Rohit Sharma
相关产品推荐
相关产品推荐

