2016-04-25 133 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

你正在使用它就像一個功能參數,這是不必要的(和錯誤的)。由於開關語句檢查值等於大小寫,所以您需要使用: