Javascript 寻找优雅的如果

Javascript 寻找优雅的如果,javascript,Javascript,有没有更优雅的方法 if (err.code === 'CONFLICT-GROUP-GENERAL' || err.code === 'CONFLICT-USER-GENERAL' || err.code === 'CONFLICT-FORM-GENERAL' || err.code === 'CONFLICT-PROJECT-GENERAL' || err.code === 'CONFLICT-TEMPLATE-GENERAL') {} 我最好使用一个

有没有更优雅的方法

   if (err.code === 'CONFLICT-GROUP-GENERAL' ||
    err.code === 'CONFLICT-USER-GENERAL' ||
    err.code === 'CONFLICT-FORM-GENERAL' ||
    err.code === 'CONFLICT-PROJECT-GENERAL' ||
    err.code === 'CONFLICT-TEMPLATE-GENERAL') {}

我最好使用一个包含所有代码的数组,并使用
indexOf
检查它是否大于
-1

if (['CONFLICT-GROUP-GENERAL', 'CONFLICT-USER-GENERAL', 'CONFLICT-FORM-GENERAL', 'CONFLICT-PROJECT-GENERAL', 'CONFLICT-TEMPLATE-GENERAL'].indexOf(err.code) > -1) {
}

在我看来,这个技巧更优雅(使用数组和):

如果您使用的是ES7,则可以使用而不是
indexOf
。这将更加“富有表现力”:

请注意,并非所有浏览器都支持
includes()

编辑:

另一种选择是:使用。这样:

switch (err.code) {
    case 'CONFLICT-GROUP-GENERAL',:
    case 'CONFLICT-USER-GENERAL',:
    case 'CONFLICT-FORM-GENERAL',:
    case 'CONFLICT-PROJECT-GENERAL',:
    case 'CONFLICT-TEMPLATE-GENERAL':
        doSomething();
        break;
}

err.code
等于每个
案例中的一个指定字符串时,上面的代码将执行
doSomething()
函数。正确的解决方案取决于
{}
之间的内容。我将使用.or
includes()
@PranavCBalan在旧浏览器中不受支持吗?无论如何,对于新浏览器;)
var conflicts = ['CONFLICT-GROUP-GENERAL',
                    'CONFLICT-USER-GENERAL',
                    'CONFLICT-FORM-GENERAL',
                    'CONFLICT-PROJECT-GENERAL',
                    'CONFLICT-TEMPLATE-GENERAL'];

if (conflicts.inclues(err.code)) {
    doSomething();
}
switch (err.code) {
    case 'CONFLICT-GROUP-GENERAL',:
    case 'CONFLICT-USER-GENERAL',:
    case 'CONFLICT-FORM-GENERAL',:
    case 'CONFLICT-PROJECT-GENERAL',:
    case 'CONFLICT-TEMPLATE-GENERAL':
        doSomething();
        break;
}