Référence de JavaScript 1.5 Core:Objets globaux:Array:some
Un article de MDC.
Sommaire |
[modifier] Résumé
Teste si certains é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 resultat = array.some(callback[, objetThis]);
[modifier] Paramètres
-
callback - Fonction à tester pour chaque élément.
-
objetThis - Objet à utiliser comme
thislors de l'exécution decallback.
[modifier] Description
La méthode some exécute la fonction callback une seule fois pour chaque élément présent dans le tableau jusqu'à ce qu'elle en trouve un pour lequel callback renvoie une valeur true. Si un tel élément est trouvé, some renvoie immédiatement true. Dans le cas contraire, some renvoie false. callback n'est invoquée que pour les indices du tableau auxquels des valeurs sont assignées ; elle n'est pas invoquée pour les indices qui ont été supprimés ou auxquels aucune valeur n'a jamais été assignée.
La fonction callback est invoquée avec trois paramètres : la valeur de l'élément, l'indice de l'élément et l'objet Array parcouru.
Si un paramètre objetThis est fourni à some, il sera utilisé comme valeur de this pour chaque invocation de callback. S'il n'est pas fourni, ou vaut null, l'objet global associé à callback sera utilisé à la place.
La méthode some ne modifie pas le tableau sur lequel elle est appelée.
L'intervalle des éléments traités par some 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 à some ne seront pas visités par callback. Si un élément existant non encore visité est modifié par callback, sa valeur passée à callback sera sa valeur au moment où some visite l'indice de cet élément ; les éléments supprimés ne seront pas visités.
[modifier] Compatibilité
La méthode some 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, permettant d'utiliser some dans des implémentations d'ECMA-262 qui ne la gèrent pas nativement. Cet algorithme est le même que celui utilisé dans Firefox et SpiderMonkey.
if (!Array.prototype.some)
{
Array.prototype.some = 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 true;
}
return false;
};
}
[modifier] Exemples
[modifier] Exemple : test de la taille de tous les éléments d'un tableau
L'exemple suivant teste si certains éléments d'un tableau sont plus grands que 10.
function estAssezGrand(element, indice, array) {
return (element >= 10);
}
var resultat = [2, 5, 8, 1, 4].some(estAssezGrand);
// resultat vaut false
passed = [12, 5, 8, 1, 4].some(estAssezGrand);
// resultat vaut true