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()
函数。正确的解决方案取决于{}
之间的内容。我将使用.orincludes()
@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;
}