2016-05-10 61 views
0

是否可以簡化第二行同時保持三行代碼? current應該具有「錯誤」值。內線打破

for item in [ 1, 2, 3, undefined, 5, 6] 
    break if (current = if item? then item else "error") is "error" 
console.dir current 

我試圖讓這樣的事情,沒有運氣:

for item in [ 1, 2, 3, undefined, 5, 6] 
    current = if item? then item else "error", break 
console.dir current 
+0

也許你應該用你的循環正在設法解決,而不是試圖迫使循環是一個緊湊的不透明混亂問題的簡單聲明開始:更少的線並不意味着更好的代碼,經常它恰恰相反。如果循環中的任何內容是「null」或「undefined」,並且以其他方式抓取數組的最後一個元素,是否真的想說「錯誤」? –

+0

不,''錯誤''只是作爲一個例子。原始情況更復雜,甚至沒有以直線形式處理數組。對於更少的行和更好的代碼,你是對的,但另一方面,沒有什麼能阻止我尋找更少的代碼,只要我有時間尋找代碼,代碼就會更好。 – user619271

回答

1

這裏是一個班輪,這就是我發現它寫在咖啡的最佳方式,但在生產中不會,所以我的同事在閱讀時不會殺了我。

break for item in [ 1, 2, 3, undefined, 5, 6] when (current = item ? 'error') is 'error' 
console.dir current 

實際上有很多方法可以編寫它,在Javascript中使用完全相同的輸出。

問候,

+0

這是一個有趣的。謝謝。 – user619271