switch @user && @other
when 'user' && true
...
when 'user2' && false
...
这样的事情可能吗?由于某种原因它不起作用。谢谢!
答案 0 :(得分:1)
遗憾的是JS不认为[1, 2] === [1, 2]
(因为它们是不同的引用);否则你可以使用数组来做你想做的事。
相反,这是一个函数:
multiSwitch = (values, cases...) ->
for c in cases
match = true
for i in [0...values.length]
unless c[i] is values[i]
match = false
break
return c[values.length]() if match
return
像这样使用:
multiSwitch [@user, @other],
['user', true, ->
console.log 'case 1'
]
['user2', false, ->
console.log 'case 2'
]
根据您正在做的事情,可能更容易,例如,将多个值连接成一个字符串,并对其执行switch
。