Visit Mozilla.org

Référence de JavaScript 1.5 Core:Objets globaux:Array:indexOf

Un article de MDC.


Sommaire

[modifier] Résumé

Renvoie le premier indice auquel un élément donné peut être trouvé dans le tableau, ou -1 s'il n'est pas présent.

Méthode de Array
Implémenté dans : JavaScript 1.6 (Gecko 1.8b2 et supérieurs)
Édition d'ECMAScript : aucune

[modifier] Syntaxe

var index = array.indexOf(element[, depuisIndice]);

[modifier] Paramètres

element 
Élément à localiser dans le tableau.
depuisIndice 
L'indice à partir duquel débuter la recherche. Vaut 0 par défaut, c'est-à-dire que la recherche se fera dans le tableau entier. Si l'indice est plus grand ou égal à la longueur du tableau, -1 sera renvoyé, et le tableau ne sera pas examiné. S'il est négatif, il est pris comme un décalage depuis la fin du tableau. Notez que même lorsque l'indice est négatif, le tableau est toujours parcouru du début vers la fin. Si l'indice calculé est inférieur à 0, la recherche se fera dans tout le tableau.

[modifier] Description

indexOf compare element aux éléments du tableau en utilisant l'égalité stricte (la même méthode que l'opérateur ===, ou triple-égalité).

[modifier] Compatibilité

indexOf est une extension de JavaScript au standard ECMA-262 standard. En tant que telle, elle peut ne pas être présente dans d'autres implémentations de ce standard. Il est possible de contourner cette absence en ajoutant le code suivant au début de vos scripts, qui permettra d'utiliser indexOf dans les implémentations d'ECMA-262 qui ne le gèrent pas nativement.

if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}

Notez que cette implémentation se veut totalement compatible avec indexOf dans Firefox et le moteur Javascript SpiderMonkey, notamment pour les cas où l'indice passé à indexOf n'est pas une valeur entière. Si vous avez l'intention de l'utiliser dans des applications réelles, vous pouvez ne pas avoir besoin de tout le code pour calculer from.

[modifier] Exemples

[modifier] Exemple : utilisation d'indexOf

L'exemple suivant utilise indexOf pour trouver des valeurs dans un tableau.

array = [2, 5, 9];
index = array.indexOf(2);
// l'indice est 0
index = array.indexOf(7);
// l'indice est -1

[modifier] Exemple : recherche de toutes les occurrences d'un élément

L'exemple suivant utilise indexOf pour trouver tous les indices d'un élément dans un tableau donné, en utilisant push pour les ajouter successivement à un autre tableau.

var indices = [];
var idx = array.indexOf(element)
while (idx != -1) {
   indices.push(idx);
   idx = array.indexOf(element, idx + 1);
}

[modifier] Voir aussi

lastIndexOf