414 Stimmen

Ermitteln, ob eine Zeichenfolge in einer Liste in JavaScript enthalten ist

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X