2016-09-17 66 views
0

我做的一個角的教程,但無論如何,我不明白以下return語句:JS奇怪return語句

return selectedCategory == null || product.category == selectedCategory; 

我試圖重寫它像這樣,但它不工作:

if (selectedCategory == null) { 
       return selectedCategory; 
      } else { 
       return product.category; 
      } 

單線程代碼如何重寫以便更容易理解?

回答

2

你的返回值爲null,它們返回true。你將需要

if (selectedCategory == null) { 
    return true; 
} else { 
    return product.category == selectedCategory; 
} 
0

如何可以在一個襯墊代碼重寫以便更容易理解?

通過把一些括號各地返回的表達式:

return ((selectedCategory == null) || (product.category == selectedCategory)); 

它只是返回一個布爾值。這不應該分裂,使用if-語句使事實上更難以閱讀。如果有的話,你可以引入一些額外的變量來給出單個值的描述性名稱:

// some guesses about their meaning 
var noSelection = selectedCategory == null; 
var alreadyActive = product.category == selectedCategory; 
var nothingTodo = noSelection || alreadyActive; 
return nothingTodo; 
+0

@naortor你可能是對的,但我想保持代碼儘可能接近原始 – Bergi