[英]JavaScript if-statement inside function to avoid division by zero NaN result?
我在函數中有這個函數,問題是var之一可能是0,眾所周知我們不能將其除以0。
html += ('<div class="portlet banner-port" style="border-color: #2d0059;" class="panel-collapse collapse"> \
<div class="portlet-heading" style="background: linear-gradient(to right, rgba(0, 0, 0, 0.40) 0%, rgba(0, 0, 0, 0) 100%), #2d0059;"> \
<div class="portlet-title" style="color:#ffffff;"> \
<h4> \
<i class="fa fa-link fa-fw"></i> '+jstext.language.custom_direct_link+' <span style="float:right"><span>'+jstext.language.custom_raw_visits+': '+resp.link.hits+'</span> <span>'+jstext.language.custom_transactions+': '+resp.link.conv+'</span> <span>'+jstext.language.custom_earnings+': '+resp.link.earnings+' €</span> <span>EPC: '+(resp.link.earnings / resp.link.hits * 100).toFixed(2)+' €</span></span> \
</h4> \
</div> \
<div class="portlet-body"><label>'+jstext.language.marketing_target_url+':</label> \
<textarea style="font-weight:normal !improtant;" id="direct-link-'+resp.data.id+'" rows="1" class="form-control">'+resp.direct_url+'</textarea> \
</div> \
</div> \
</div>')
因此,在這種情況下,JSON響應resp.link.hits可以為0,然后EPC就如人們所期望的那樣-NaN 。 正如我所看到的,我在這里遇到一些基本的語法問題。 我在哪里聲明在這部分顯示0而不是NaN:
<span>EPC: '+(resp.link.earnings / resp.link.hits * 100).toFixed(2)+' €</span>
我嘗試了幾件事,例如:
<span>EPC: '+if( resp.link.hits === 0 ){0} else {(resp.link.earnings / resp.link.hits * 100).toFixed(2)}+' €</span>
上面帶有if語句的示例使整個代碼無法正常工作。 除以0時,我無法顯示0.00而不是NaN。有什么想法嗎? 任何幫助表示贊賞!
使用三元運算符作為
<span>EPC: ' + ( resp.link.hits === 0 ? 0 : (data.earnings / data.hits * 100).toFixed(2) + ' €</span>
嘗試三元運算符。 語法是expression ? trueValue : falseValue
expression ? trueValue : falseValue
例如:
<span>EPC: ' resp.link.hits === 0 ? 0 : (data.earnings / data.hits * 100).toFixed(2) + ' €</span>
您試圖在應該有表達式的地方使用流控制語句。
在您的代碼中, if ...
不返回任何內容。 您可以重新組織代碼或將if
語句轉換為三元運算符? :
? :
像這樣:
resp.link.hits === 0 ? 0 : (data.earnings / data.hits * 100).toFixed(2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.