首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找优雅的

寻找优雅的
EN

Stack Overflow用户
提问于 2017-06-23 16:28:09
回答 2查看 73关注 0票数 2

如果有什么更好的方法吗?

代码语言: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') {}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-23 16:31:58

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

代码语言:javascript
复制
var conflicts = ['CONFLICT-GROUP-GENERAL',
                    'CONFLICT-USER-GENERAL',
                    'CONFLICT-FORM-GENERAL',
                    'CONFLICT-PROJECT-GENERAL',
                    'CONFLICT-TEMPLATE-GENERAL'];

if (conflicts.indexOf(err.code) !== -1) {
    doSomething();   
}

如果您正在使用ES7,那么您可以使用包括()而不是indexOf。这将更具“表现力”:

代码语言:javascript
复制
var conflicts = ['CONFLICT-GROUP-GENERAL',
                    'CONFLICT-USER-GENERAL',
                    'CONFLICT-FORM-GENERAL',
                    'CONFLICT-PROJECT-GENERAL',
                    'CONFLICT-TEMPLATE-GENERAL'];

if (conflicts.inclues(err.code)) {
    doSomething();
}

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

编辑:

另一种选择:使用交换机。这条路:

代码语言:javascript
复制
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;
}

doSomething()等于每个case中指定的字符串之一时,上面的代码将执行case函数。

票数 3
EN

Stack Overflow用户

发布于 2017-06-23 16:31:08

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

代码语言:javascript
复制
if (['CONFLICT-GROUP-GENERAL', 'CONFLICT-USER-GENERAL', 'CONFLICT-FORM-GENERAL', 'CONFLICT-PROJECT-GENERAL', 'CONFLICT-TEMPLATE-GENERAL'].indexOf(err.code) > -1) {
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44726129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档