反正有縮短在Javascript中是這樣的:if (x == 1 || x == 2 || x == 3 || x == 4)
的東西一樣,如果(x == (1 || 2 || 3 || 4))
?縮短JS如果或聲明
回答
您可以根據Array.indexOf
[1,2,3,4].indexOf(x) !== -1
您還可以使用對象爲某種散列映射:
//Note: Keys will be coerced to strings so
// don't use this method if you are looking for an object or if you need
// to distinguish the number 1 from the string "1"
my_values = {1:true, 2:true, 3:true, 'foo':true}
my_values.hasOwnProperty('foo')
順便說一句,在大多數情況下,你應該USI的「 ===「嚴格平等運營商而不是==
運營商。使用「==」進行比較可能會執行許多複雜類型的強制操作,有時您可能會得到令人驚訝的結果。
嗯*有時*「==」很有用,但你可能是正確的,「===」應該是一個JavaScript程序員自動鍵入的內容:-) – Pointy
談論強制,對象初始化器做三次:-P –
不寫入一個函數,它數組作爲輸入,並返回真/假,或某種陣列搜索的。這將是很難維護/其他開發人員閱讀。它會明顯變慢。所以只要堅持語義正確的更長的版本。
也是一個很好的方法,如果什麼都可以顯著縮短是通過接近編譯器來運行它,看看它出來用。
I第二個這個。將這樣的複雜檢查封裝到func中以更好地傳達含義通常是一個好主意。 –
如何:
if (x > 0 && x < 5) {
}
我想這一點,但後來我意識到約翰提出它作爲一個簡單的例子並非個案研究可以這麼說。 –
如果您的情況不那麼簡單,而該權利表示:
if (1 <= x && x <= 4)
你可以使用一個array and indexOf
:
if ([1,2,3,4].indexOf(x) > -1)
注意indexOf
可能需要重新實施。
刪除空格後,它實際上是1個字符*(指'indexOf()')*,但給定了更長的匹配列表,它會更短。我想這取決於實際的代碼。 – user113716
你可以寫一個函數:
function isAny(x) {
for (var i = 1; i < arguments.length; ++i)
if (arguments[i] === x) return true;
return false;
}
然後你就可以說:
if (isAny(x, 1, 2, 3, 4)) { /* ... */ }
(是否使用 「===」 或 「==」 將取決於確切的語義你想。)
- 1. 縮短VB.NET數組聲明?
- 2. OnClick JS如果聲明
- 3. 如果聲明與或
- 4. VB.net如果或聲明
- 5. 縮短我的ElseIf聲明。怎麼樣?
- 6. 如果聲明離子,角JS
- 7. 自動縮短JS的URL或者Rails
- 8. 短片或聲明未觸發
- 9. 如果聲明
- 10. 如果聲明
- 11. 如果聲明
- 12. 簡單的「如果」有「或」聲明
- 13. 如果和或在Excel中的聲明
- 14. excel中的錯誤如果或聲明
- 15. 積極或消極的 - 如果聲明
- 16. C++如果聲明或文本文件
- 17. 如果聲明捷徑或改進?
- 18. 如果或聲明始終爲真
- 19. Rails 4 - 或者如果聲明
- 20. 如果聲明與或在php
- 21. 嵌套如果聲明好或壞?
- 22. PHP:如果聲明變量聲明
- 23. WP:如果聲明
- 24. 如果聲明php
- 25. 如果聲明VBA
- 26. 如果聲明JAVA
- 27. MySQL如果?聲明
- 28. CSS如果聲明?
- 29. JSON如果聲明
- 30. 如果聲明c#
'如果(X> 0 && X <5)'? – kjy112
如果你正在尋找類似於你發佈的語法,那麼沒有。你應該考慮任何縮短它的迂迴路線都會受到性能影響。 – user113716
數字被使用,以便作爲例子使用「如果(X> 0 && X <5)」如果我比較字符串是沒有用的。 – John