284 votes

Comment vérifier si un tableau de chaînes contient une seule chaîne en JavaScript ?

J'ai un tableau de chaînes de caractères et une chaîne de caractères. J'aimerais tester cette chaîne par rapport aux valeurs du tableau et appliquer une condition au résultat - si le tableau contient la chaîne, faire "A", sinon faire "B".

Comment puis-je faire cela ?

499voto

James Allardice Points 81162

Il existe un indexOf que possèdent tous les tableaux (à l'exception d'Internet Explorer 8 et des versions inférieures) et qui renvoie l'indice d'un élément du tableau, ou -1 s'il n'est pas dans le tableau :

if (yourArray.indexOf("someString") > -1) {
    //In the array!
} else {
    //Not in the array
}

Si vous devez prendre en charge les anciens navigateurs IE, vous pouvez remplir cette méthode en utilisant le code dans l'article du MDN .

66voto

fableal Points 895

Vous pouvez utiliser le indexOf et "étendre" la classe Array avec la méthode contains comme ceci :

Array.prototype.contains = function(element){
    return this.indexOf(element) > -1;
};

avec les résultats suivants :

["A", "B", "C"].contains("A") équivaut true

["A", "B", "C"].contains("D") équivaut false

39voto

FixMaker Points 2429
var stringArray = ["String1", "String2", "String3"];

return (stringArray.indexOf(searchStr) > -1)

10voto

eridanix Points 396

Créer ce prototype de fonction :

Array.prototype.contains = function ( needle ) {
   for (var i in this) { // Loop through every item in array
      if (this[i] == needle) return true; // return true if current item == needle
   }
   return false;
}

et vous pouvez ensuite utiliser le code suivant pour rechercher dans le tableau x

if (x.contains('searchedString')) {
    // do a
}
else
{
      // do b
}

5voto

Mohit Points 749

Ceci le fera pour vous :

function inArray(needle, haystack) {
    var length = haystack.length;
    for(var i = 0; i < length; i++) {
        if(haystack[i] == needle)
            return true;
    }
    return false;
}

Je l'ai trouvé dans la question de Stack Overflow équivalent JavaScript de la fonction in_array() de PHP .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X