Visit Mozilla.org

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

Un article de MDC.


Sommaire

[modifier] Résumé

Teste si tous les éléments du tableau passent le test implémenté par la fonction fournie.

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

[modifier] Syntaxe

var toutOk = array.every(callback[, objetThis]);

[modifier] Paramètres

callback 
Fonction à tester pour chaque élément.
objetThis 
Objet à utiliser comme this lors de l'exécution de callback.

[modifier] Description

every exécute la fonction callback fournie une seule fois pour chaque élément présent dans le tableau jusqu'à ce qu'il en trouve un pour lequel callback renvoie une valeur false. Si un tel élément est trouvé, la méthode every renvoie immédiatement false. Si au contraire callback a renvoyé une valeur true pour tous les éléments, every renverra true. callback n'est invoquée que pour les indices du tableau qui ont des valeurs assignées ; elle n'est pas invoquée pour les indices qui ont été supprimés ou auxquels aucune valeur n'a jamais été attribuée.

callback est appelée avec trois paramètres : la valeur de l'élément, l'indice de l'élément et l'objet Array en train d'être parcouru.

Si un paramètre objetThis est fourni à every, il sera utilisé comme valeur de this pour chaque invocation de callback. S'il n'est pas fourni, ou s'il vaut null, l'objet global associé avec callback sera utilisé à la place.

La méthode every ne modifie pas le tableau sur lequel elle est appelée.

L'intervalle des éléments traités par every est défini avant la première invocation de callback. Les éléments qui sont ajoutés au tableau après le début de l'appel à every ne seront pas visités par callback. Si des éléments existants sont modifiés, leur valeur telle que passée à callback sera leur valeur au moment où every les visite ; les éléments qui ont été supprimés ne seront pas visités.

La méthode every agit comme le quantifiant « pour tout » en mathématiques. En particulier, pour un tableau vide, elle renvoie true. (Toute proposition commençant par « pour tout élément de l'ensemble vide » est vraie.)

[modifier] Compatibilité

La méthode every est une extension de JavaScript à la norme ECMA-262 ; en tant que telle elle peut ne pas être présente dans d'autres implémentations de cette norme. Il est possible de contourner ceci en insérant le code qui suit au début de vos scripts, ce qui permettra d'utiliser every dans des implémentations d'ECMA-262 qui ne le gèrent pas nativement. Cet algorithme est identique à celui utilisé dans Firefox et SpiderMonkey.

if (!Array.prototype.every)
{
  Array.prototype.every = function(fun /*, thisp*/)
  {
    var len = this.length;
    if (typeof fun != "function")
      throw new TypeError();

    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in this &&
          !fun.call(thisp, this[i], i, this))
        return false;
    }

    return true;
  };
}

[modifier] Exemples

[modifier] Exemple : test de la taille de tous les éléments d'un tableau

L'exemple qui suit teste si tous les éléments d'un tableau sont supérieurs à 10.

function estAssezGrand(element, indice, array) {
  return (element >= 10);
}
var resultat = [12, 5, 8, 130, 44].every(estAssezGrand);
// resultat vaut false
resultat = [12, 54, 18, 130, 44].every(estAssezGrand);
// resultat vaut true