2016-09-17 4 views
0

私は角度のチュートリアルをやって、関係なく、私は次のreturn文を理解していない:JS奇妙なreturn文

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

私はそうのようにそれを書き換えてみましたが、それは動作しません:

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

1つのライナーコードをどのようにしてより簡単に理解できるように書き直すことができますか?

答えて

2

Yoursはnullを返し、theirsはtrueを返します。あなたは、より容易に理解されるように1つのライナーコードを書き換えることができる方法

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