In SQL können wir so feststellen, ob eine Zeichenkette in einer Liste enthalten ist:
Column IN ('a', 'b', 'c')
Wie lässt sich das in JavaScript gut umsetzen? Es ist so klobig, dies zu tun:
if (expression1 || expression2 || str === 'a' || str === 'b' || str === 'c') {
// do something
}
Und ich bin mir nicht sicher, was die Leistung oder die Klarheit angeht:
if (expression1 || expression2 || {a:1, b:1, c:1}[str]) {
// do something
}
Oder man könnte die Schalterfunktion nutzen:
var str = 'a',
flag = false;
switch (str) {
case 'a':
case 'b':
case 'c':
flag = true;
default:
}
if (expression1 || expression2 || flag) {
// do something
}
Aber das ist ein furchtbares Durcheinander. Irgendwelche Ideen?
In diesem Fall muss ich Internet Explorer 7 verwenden, da es sich um eine Intranetseite eines Unternehmens handelt. Also ['a', 'b', 'c'].indexOf(str) !== -1
funktioniert nicht von Haus aus ohne Syntaxzucker.