2016-01-22 46 views
0

我有這樣的場景:最佳方式

updates['errmsg'] = data.errmsg; 
((!data.question) ? (this.unset('question')) : updates['question'] = data.question) 
updates['run_time'] = data.run_time 

我試圖避免在第一行的分號,但是,當我這樣做忽略吧,下面的行加入了前一行,因爲data.errmsg is not a function,我得到一個錯誤。我如何在第二行使用表達式,並且第一行沒有分號?

+7

問題是爲什麼?什麼是濫用副作用和遭受後果? – mplungjan

+5

所以你選擇躺在一張釘子上,現在你想知道你背上的那些小刺是什麼? – 2016-01-22 09:33:51

+0

我可能很厚,但花了我一個年齡來閱讀你的代碼。認爲沒有速記tbh會更清楚。 – PeteG

回答

3

只跳過括號

!data.question ? this.unset('question') : (updates['question'] = data.question) 
+0

,你可以把它們包裝在一個'!'或兩個後面。例如:'!!(a === 3 && x <= 5)? ...' –

0

如果你想初始化一個聲明中所有三個然後嘗試

updates['errmsg'] = data.errmsg, 
data.question = (!data.question ? this.unset('question') : updates['question']) , 
updates['run_time'] = data.run_time; 
+0

爲什麼downvotes?請**還**留下評論,如果有什麼可以改進。 – gurvinder372

+0

考慮到這個問題本身毫無用處,任何回答都不可能認真對待這個問題,因爲沒有用處的是建議降低答案的理由。 – 2016-01-22 10:14:55

0

將這項工作的嗎?

updates = { 
    'errmsg': data.errmsg, 
    'question': data.question || null, 
    'run_time': data.run_time 
} 

updates = { 'errmsg':data.errmsg,'run_time':data.run_time } 
if (data.question) { updates['question']=data.question } 
+0

您使用了分號!〜 – 2016-01-22 09:41:13

+0

@torazaburo no more semis – mplungjan