簡體   English   中英

函數中的JavaScript if-statement避免被NaN零除的結果?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM