将对象传递给切换案例Javascript

时间:2016-04-25 15:51:12

标签: javascript

我想要一个在Javascript中接受对象的switch / case语句。

该功能如下所示。

const validate = (values) => { values is an object, can be accessed like so (values.bar, values.foo)
  const errors = {}

  switch(values) {
    case !values.bar || values.bar === '':
       errors.bar = 'Enter bar'
    case values.bar.length < 10: 
       errors.bar = 'Bar is too short'
    case !values.foo || values.foo === '':
       errors.foo = 'Enter foo'
    ...

    default: 
      return errors
  } 
}

这不起作用,我使用了if / else语句,但我觉得这样的开关/案例非常适合这种情况。想法?

3 个答案:

答案 0 :(得分:3)

更改

switch(values) {

switch(true) {

switch检查strict equality

如果你不知道切换案例(kudos to blex),必要时使用一些break

答案 1 :(得分:0)

你正在使用它就像一个不必要(和错误)的函数参数。由于switch语句检查值是否等于大小写,因此您需要使用:

switch(true) 

答案 2 :(得分:0)

const switchCase=(obj={},str='')=>obj[Object.keys(obj).find(ele=>ele.toString().split('|').includes(str.toString())) || 'default']


console.log(switchCase({
   default:'o',
  40:'ko',
  xyz:'hi',
  'yi|th' :'ho'
},'yi'))