我有以下數組賦值:更多的CoffeeScript數組賦值
advances = if advance == 0 then [advance] else [advance, (0 - advance)]
我不知道是否有這樣做的更CoffeeScript的方式嗎?
我有以下數組賦值:更多的CoffeeScript數組賦值
advances = if advance == 0 then [advance] else [advance, (0 - advance)]
我不知道是否有這樣做的更CoffeeScript的方式嗎?
我認爲你自己的建議非常好。它很簡單,清晰且功能齊全。
,如果你認爲減少標點符號的CoffeeScript的方式的一部分,那麼你可以刪除括號
advances = if advance == 0 then [advance] else [advance, 0 - advance]
您可能在考慮列表解析,但我無法想象如何在這裏使用它們。我相信你會得到利用underscore.js更好的結果(或一些其他圖書館提供集合工具類):
advances = _.uniq([advance, (0 - advance)])
什麼:
advances = [advance]
advances.push (0 - advance) if advance != 0
我覺得這是一個有點更具可讀性。但我想這是一個品味的問題。 它還使用了咖啡腳本的很好的if-end-end功能,這使得像這種「有條件的數組增長」這樣的語句更具可讀性(至少對我而言)。
PS:我也將== 0
更改爲!= 0
以避免unless
聲明。閱讀代碼時,它讓我感到困惑。
PPS:不要把所有東西都放在一條線上(即使咖啡劇本擅長)。總是想到最可讀的(和良好的)代碼。
我不確定'除非'是個問題,我其實很喜歡。另外,使用'is'有助於閱讀:) 'advance.push(0 - advance)除非advance是0' –
不,我不喜歡那種方式。無論如何,很難告訴我的同事咖啡劇本。爲'=='和'if'這些非常常見的東西添加新單詞就會打開地獄之門。 ;) – Juve
是的,你在這裏有一個點。無論如何,這並不是一個真正的問題,你的回答很好。 –
我想你可以說'is',而不是''==如果你真的想要。他們都意味着'===' – asawyer
許多人避免使用'is'並使用普通的老式'=='。這樣你就可以與大多數開發人員更加兼容。我還傾向於使用'if then then x else y'(JavaScript對''「,undefined,false,null,0'進行魔術檢查),這在很多地方都能正常工作。 – Juve