缩短JS if或语句
这个问题在这里已经有了答案:
你可以使用使用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')
顺便说一下,在大多数情况下,您应该使用“===”严格等号运算符而不是==
运算符。 使用“==”进行比较可能会执行许多复杂类型的强制操作,有时您可能会得到令人惊讶的结果。
如果你的情况不是这么简单,
if (1 <= x && x <= 4)
你可以使用数组和indexOf
:
if ([1,2,3,4].indexOf(x) > -1)
请注意, indexOf
可能需要重新实施。
无需编写一个将数组作为输入并返回true / false或某种数组搜索的函数。 这将是很难维护/其他开发人员阅读。 它会明显变慢。 所以只要坚持语义正确的更长的版本。
另外一个很好的方法来查看是否可以显着缩短任何事情,可以通过关闭编译器运行它并查看它的结果。
链接地址: http://www.djcxy.com/p/75061.html