CoffeeScript多值切换语句?

CoffeeScript多值切换语句?,coffeescript,Coffeescript,这样的事情可能吗?因为某种原因它不起作用。谢谢 很遗憾,JS不认为[1,2]==[1,2](因为它们是不同的引用);否则,您可以使用数组来执行您想要的操作 相反,这里有一个函数: switch @user && @other when 'user' && true ... when 'user2' && false ... 像这样使用它: multiSwitch = (values, cases...

这样的事情可能吗?因为某种原因它不起作用。谢谢

很遗憾,JS不认为
[1,2]==[1,2]
(因为它们是不同的引用);否则,您可以使用数组来执行您想要的操作

相反,这里有一个函数:

switch @user && @other
    when 'user' && true
        ...
    when 'user2' && false
       ...
像这样使用它:

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

根据您正在执行的操作,可以更轻松地将多个值连接到一个字符串中,并在该字符串上进行
切换。

您可以定义“不工作”吗?那代码编译得很好。或者您是否希望它将
user
'user'
进行比较,将
@other
true
进行比较?如果是这样,就没有办法让
开关
做你想做的事情;您应该使用
if
/
else
或编写一个函数。啊,好的。是的,我想让用户与“用户”进行比较,而另一个与“真”进行比较。
multiSwitch [@user, @other],
  ['user', true, ->
    console.log 'case 1'
  ]
  ['user2', false, ->
    console.log 'case 2'
  ]