Méthode indexOf Tableaux

  • Raccourci de la révision : JavaScript/Reference/Global_Objects/Array/indexOf
  • Titre de la révision : Méthode indexOf
  • ID de la révision : 343411
  • Créé :
  • Créateur : tregagnon
  • Version actuelle ? Non
  • Commentaire

Contenu de la révision

Résumé

Retourne le premier index auquel l'élément renseigné peut être trouvé dans le tableau, ou -1 si il est absent.

Méthode de Array
Implémenté dans JavaScript 1.6
Édition ECMAScript ECMAScript 5e édition

Syntaxe

array.indexOf(searchElement[, fromIndex])

Paramètres

searchElement
L'élément à chercher dans le tableau
fromIndex
L'index à partir duquel commencer la recherche. 0 par défaut, le tableau sera parcouru dans sa totalité. Si l'index est plus grand ou égal à la longueur du tableau, la méthode retournera -1. Si l'index est négatif, la recherche commencera d'autant d'éléments, à partir de la fin du tableau. A noter que même si l'index est négatif, la recherche s'effectue toujours du début jusqu'à la fin du tableau. Si l'index calculé est inférieur à 0, le tableau sera entièrement parcouru.

Description

indexOf compare searchElement aux éléments contenus dans le tableau en utilisant une égalité stricte (la même méthode utilisée par l'opérateur ===).

Compatibilité

indexOf est un ajout récent au standard ECMA-262 ; il peut donc ne pas être présent dans tous les navigateurs web. Vous pouvez contourner ce problème en insérant le code suivant au début de vos scripts. Il permet l'usage de indexOf dans les navigateurs ne le supportant pas nativement. L'algorithme est le même que celui spécifié dans ECMA-262, 5e édition, assumant que ObjectTypeErrorNumber, Math.floor, Math.abs, et Math.max ont leurs valeurs originales

if (!Array.prototype.indexOf) {
    Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
        "use strict";
        if (this == null) {
            throw new TypeError();
        }
        var t = Object(this);
        var len = t.length >>> 0;
        if (len === 0) {
            return -1;
        }
        var n = 0;
        if (arguments.length > 1) {
            n = Number(arguments[1]);
            if (n != n) { // shortcut for verifying if it's NaN
                n = 0;
            } else if (n != 0 && n != Infinity && n != -Infinity) {
                n = (n > 0 || -1) * Math.floor(Math.abs(n));
            }
        }
        if (n >= len) {
            return -1;
        }
        var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
        for (; k < len; k++) {
            if (k in t && t[k] === searchElement) {
                return k;
            }
        }
        return -1;
    }
}

Exemples

Exemple: utiliser indexOf

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

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

Exemple: Trouver toutes les occurences d'un élément

L'exemple suivant utilise indexOf pour trouver tous les index d'un élément au sein d'un tableau, utilisant push pour les ajouter à un nouveau tableau à chaque occurence trouvé.

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

Compatibilité navigateurs

{{ CompatibilityTable() }}

Fonction Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support de base {{ CompatVersionUnknown() }} {{ CompatVersionUnknown() }} 9 {{ CompatVersionUnknown() }} {{ CompatVersionUnknown() }}
Fonction Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support de base {{ CompatUnknown() }} {{ CompatUnknown() }} {{ CompatUnknown() }} {{ CompatUnknown() }} {{ CompatUnknown() }} {{ CompatUnknown() }}

Voir aussi

Source de la révision

<h2 id="Summary" name="Summary">Résumé</h2>
<p>Retourne le premier index auquel l'élément renseigné peut être trouvé dans le tableau, ou -1 si il est absent.</p>
<table class="standard-table">
  <thead>
    <tr>
      <th class="header" colspan="2">Méthode de <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Array" title="JavaScript/Reference/Global_Objects/Array"><code>Array</code></a></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Implémenté dans</td>
      <td>JavaScript 1.6</td>
    </tr>
    <tr>
      <td>Édition ECMAScript</td>
      <td>ECMAScript 5e édition</td>
    </tr>
  </tbody>
</table>
<h2 id="Syntax" name="Syntax">Syntaxe</h2>
<pre class="syntaxbox">
<code><em>array</em>.indexOf(<em>searchElement</em>[, <em>fromIndex</em>])</code></pre>
<h3 id="Parameters" name="Parameters">Paramètres</h3>
<dl>
  <dt>
    <code>searchElement</code></dt>
  <dd>
    L'élément à chercher dans le tableau</dd>
  <dt>
    <code>fromIndex</code></dt>
  <dd>
    L'index à partir duquel commencer la recherche. 0 par défaut, le tableau sera parcouru dans sa totalité. Si l'index est plus grand ou égal à la longueur du tableau, la méthode retournera -1. Si l'index est négatif, la recherche commencera d'autant d'éléments, à partir de la fin du tableau. A noter que même si l'index est négatif, la recherche s'effectue toujours du début jusqu'à la fin du tableau. Si l'index calculé est inférieur à 0, le tableau sera entièrement parcouru.</dd>
</dl>
<h2 id="Description" name="Description">Description</h2>
<p><code>indexOf</code> compare <code>searchElement</code> aux éléments contenus dans le tableau en utilisant une égalité stricte (la même méthode utilisée par l'opérateur ===).</p>
<h2 id="Compatibility" name="Compatibility">Compatibilité</h2>
<p><code>indexOf</code> est un ajout récent au standard ECMA-262 ; il peut donc ne pas être présent dans tous les navigateurs web. Vous pouvez contourner ce problème en insérant le code suivant au début de vos scripts. Il permet l'usage de <code>indexOf</code> dans les navigateurs ne le supportant pas nativement. L'algorithme est le même que celui spécifié dans ECMA-262, 5e édition, assumant que <code style="color: inherit; font-weight: inherit; ">Object</code>,&nbsp;<code>TypeError</code>,&nbsp;<code>Number</code>, <code>Math.floor</code>, <code>Math.abs</code>, et <code>Math.max</code> ont leurs valeurs originales</p>
<!-- var DO_NOT_MODIFY_THE_FOLLOWING_CODE_IN_ANY_WAY = 0; -->
<pre class="brush: js">
if (!Array.prototype.indexOf) {
    Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
        "use strict";
        if (this == null) {
            throw new TypeError();
        }
        var t = Object(this);
        var len = t.length &gt;&gt;&gt; 0;
        if (len === 0) {
            return -1;
        }
        var n = 0;
        if (arguments.length &gt; 1) {
            n = Number(arguments[1]);
            if (n != n) { // shortcut for verifying if it's NaN
                n = 0;
            } else if (n != 0 &amp;&amp; n != Infinity &amp;&amp; n != -Infinity) {
                n = (n &gt; 0 || -1) * Math.floor(Math.abs(n));
            }
        }
        if (n &gt;= len) {
            return -1;
        }
        var k = n &gt;= 0 ? n : Math.max(len - Math.abs(n), 0);
        for (; k &lt; len; k++) {
            if (k in t &amp;&amp; t[k] === searchElement) {
                return k;
            }
        }
        return -1;
    }
}
</pre>
<h2 id="Examples" name="Examples">Exemples</h2>
<h3 id="Example:_Using_indexOf" name="Example:_Using_indexOf">Exemple: utiliser <code>indexOf</code></h3>
<p>L'exemple suivant utilise <code>indexOf</code> pour localiser des valeurs dans un tableau.</p>
<pre class="brush: js">
var array = [2, 5, 9];
var index = array.indexOf(2);
// index est 0
index = array.indexOf(7);
// index est -1
</pre>
<h3 id="Example:_Finding_all_the_occurrences_of_an_element" name="Example:_Finding_all_the_occurrences_of_an_element">Exemple: Trouver toutes les occurences d'un élément</h3>
<p>L'exemple suivant utilise <code>indexOf</code> pour trouver tous les index d'un élément au sein d'un tableau, utilisant <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Array/push" title="JavaScript/Reference/Global_Objects/Array/push">push</a> pour les ajouter à un nouveau tableau à chaque occurence trouvé.</p>
<pre class="brush: js">
var indices = [];
var idx = array.indexOf(element);
while (idx != -1) {
    indices.push(idx);
    idx = array.indexOf(element, idx + 1);
}</pre>
<h2 id="Compatibilit.C3.A9_navigateurs">Compatibilité navigateurs</h2>
<p>{{ CompatibilityTable() }}</p>
<div id="compat-desktop">
  <table class="compat-table">
    <tbody>
      <tr>
        <th>Fonction</th>
        <th>Chrome</th>
        <th>Firefox (Gecko)</th>
        <th>Internet Explorer</th>
        <th>Opera</th>
        <th>Safari</th>
      </tr>
      <tr>
        <td>Support de base</td>
        <td>{{ CompatVersionUnknown() }}</td>
        <td>{{ CompatVersionUnknown() }}</td>
        <td>9</td>
        <td>{{ CompatVersionUnknown() }}</td>
        <td>{{ CompatVersionUnknown() }}</td>
      </tr>
    </tbody>
  </table>
</div>
<div id="compat-mobile">
  <table class="compat-table">
    <tbody>
      <tr>
        <th>Fonction</th>
        <th>Android</th>
        <th>Chrome pour Android</th>
        <th>Firefox Mobile (Gecko)</th>
        <th>IE Mobile</th>
        <th>Opera Mobile</th>
        <th>Safari Mobile</th>
      </tr>
      <tr>
        <td>Support de base</td>
        <td>{{ CompatUnknown() }}</td>
        <td>{{ CompatUnknown() }}</td>
        <td>{{ CompatUnknown() }}</td>
        <td>{{ CompatUnknown() }}</td>
        <td>{{ CompatUnknown() }}</td>
        <td>{{ CompatUnknown() }}</td>
      </tr>
    </tbody>
  </table>
</div>
<h2 id="See_also" name="See_also">Voir aussi</h2>
<ul>
  <li><a href="/fr/docs/JavaScript/Reference/Global_Objects/Array/lastIndexOf" title="JavaScript/Reference/Global_Objects/Array/lastIndexOf">Array.lastIndexOf</a>, pour rechercher à partir de la fin du tableau</li>
</ul>
Revenir à cette révision