【发布时间】:2020-04-29 09:21:45
【问题描述】:
我目前有一些 JS,它检查用户代理(iOs 与否)并根据结果设置一些变量。所以,我有类似的东西:
var isOnIOS = navigator.userAgent.match(/iPad/i)|| navigator.userAgent.match(/iPhone/i);
var eventName_unload = isOnIOS ? "something_if_true" : "something_if_false";
var eventName_load = isOnIOS ? "something0_if_true" : "something0_if_false";
现在,我必须再做一次检查,三星 briswer 是这样的:
var isOnSamsung=navigator.userAgent.match(/SAMSUNG|Samsung|SGH-[I|N|T]|GT-[I|N]|SM-[A|N|P|T|Z]|SHV-E|SCH-[I|J|R|S]|SPH-L/i)
我想在这里创建一个多重三元组,如下所示:
var eventName_unload = isOnIOS ? "something_if_true" : "something_if_false" :: isOnSamsung ? "somethingX_if_true" : "somethingX_if_false";
显然,上述不正确(只是伪代码),我想知道调用多个三元运算符来实现这一点的正确语法是什么。
谢谢。
【问题讨论】:
-
在带括号的三元值内使用另一个三元,例如
query ? ( another query ? value1 : value2 ) : value3 -
请记住嵌套三元条件 = 可读性损失。
-
这能回答你的问题吗? Multiple Ternary Operators
标签: javascript