如果有更优雅的方式吗?
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') {}
答案 0 :(得分:6)
我最好使用包含所有代码的数组,然后使用private static final String GMT = "GMT";
private static final String DATE_FORMAT_ISO = "yyyyMMdd'T'HHmmss";
public static Calendar isoToCalendar(final String inputDate) {
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone(GMT));
try {
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT_ISO, Locale.US);
dateFormat.setTimeZone(TimeZone.getTimeZone(GMT));
Date date = dateFormat.parse(inputDate);
calendar.setTime(date);
} catch (ParseException e) {
Log.e("TAG",e.getMessage());
}
return calendar;
}
检查它是否大于indexOf
:
-1
答案 1 :(得分:3)
这个技巧在我看来更优雅(使用数组和indexOf):
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,则可以使用includes()代替indexOf
。这将更具“表现力”:
var conflicts = ['CONFLICT-GROUP-GENERAL',
'CONFLICT-USER-GENERAL',
'CONFLICT-FORM-GENERAL',
'CONFLICT-PROJECT-GENERAL',
'CONFLICT-TEMPLATE-GENERAL'];
if (conflicts.inclues(err.code)) {
doSomething();
}
请注意,includes()
不会被所有浏览器支持。
修改强>
另一种选择:使用switch。这样:
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()
等于每个err.code
中的指定字符串之一时,上面的代码将执行case
函数。