В SQL мы можем видеть, есть ли строка в списке следующим образом:
Column IN ('a', 'b', 'c')
Какой хороший способ сделать это в JavaScript? Это так неуклюже, чтобы сделать это:
if (expression1 || expression2 || str === 'a' || str === 'b' || str === 'c') {
// do something
}
И я не уверен насчет производительности или ясности этого:
if (expression1 || expression2 || {a:1, b:1, c:1}[str]) {
// do something
}
Или можно использовать функцию переключения:
var str = 'a',
flag = false;
switch (str) {
case 'a':
case 'b':
case 'c':
flag = true;
default:
}
if (expression1 || expression2 || flag) {
// do something
}
Но это ужасный беспорядок. Есть идеи?
В этом случае мне нужно использовать Internet Explorer 7, так как он предназначен для корпоративной интрасети. Так что ['a', 'b', 'c'].indexOf(str) !== -1
не будет работать изначально без некоторого синтаксического сахара.