2016-04-25 104 views
0

我想要一个接受Javascript中的对象的开关/表达式语句。将对象传递给开关盒Javascript

该函数看起来像这样。

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语句来代替,但我觉得自己像一个开关/箱将是完美的这样一个例子。思考?

+0

这不是'switch'的工作方式:['switch ://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/switch)。 – Andy

回答

-1

变化

switch(values) { 

switch(true) { 

switch检查与strict equality

并且如果有必要的话,使用一些break如果你不通过开关盒(荣誉blex)。

+2

我不承认'switch语句'的目的。我认为最好使用'if/else' –

+1

有趣的是,我错过了严格检查'表达式'到'case'中的值的部分https://developer.mozilla.org/zh-CN/docs/ Web/JavaScript/Reference/Statements/switch,谢谢指出。 – Diego

-1

你正在使用它就像一个功能参数,这是不必要的(和错误的)。由于开关语句检查值等于大小写,所以您需要使用: