Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Array : méthode some()
Baseline Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La méthodesome() des instancesArray retournetrue si elle trouve un élément dans le tableau qui satisfait la fonction de test fournie. Sinon, elle retournefalse.
Dans cet article
Exemple interactif
const array = [1, 2, 3, 4, 5];// Vérifie si un élément est pairconst even = (element) => element % 2 === 0;console.log(array.some(even));// Résultat attendu : trueSyntaxe
some(callbackFn)some(callbackFn, thisArg)Paramètres
callbackFnUne fonction à exécuter pour chaque élément du tableau. Elle doit retourner une valeuréquivalente à vrai pour indiquer que l'élément passe le test, et une valeuréquivalente à faux sinon. La fonction est appelée avec les arguments suivants :
thisArgFacultatifUne valeur à utiliser comme
thislors de l'exécution decallbackFn. Voirméthodes itératives.
Valeur de retour
false sicallbackFn ne retourne pas une valeuréquivalente à vrai pour un élément du tableau ; dans le cas contraire,true est retourné immédiatement.
Description
La méthodesome() est uneméthode itérative. Elle appelle la fonction fourniecallbackFn une fois pour chaque élément d'un tableau, jusqu'à ce quecallbackFn retourne une valeuréquivalente à vrai. Si un tel élément est trouvé,some() retourne immédiatementtrue et cesse d'itérer sur le tableau. Dans le cas contraire, sicallbackFn retourne une valeuréquivalente à faux pour tous les éléments,some() retournefalse. Consultez la sectionméthodes itératives pour plus d'informations sur le fonctionnement général de ces méthodes.
some() correspond à « il existe » en logique mathématique. En particulier, pour un tableau vide, elle retournefalse pour toute condition.
callbackFn n'est invoqué que pour les indices du tableau auxquels des valeurs sont assignées. Il n'est pas invoqué pour les emplacements vides dans lestableaux creux.
some() ne modifie pas le tableau sur lequel elle est appelée, mais la fonction fournie en tant quecallbackFn peut le faire. Notez toutefois que la longueur du tableau est enregistréeavant la première invocation decallbackFn. Par conséquent :
callbackFnne visitera aucun élément ajoutés au-delà de la longueur initiale du tableau au moment où l'appel àsome()a commencé.- Les modifications apportées aux indices déjà visités ne provoquent pas que
callbackFnsoit invoquée de nouveau pour ces indices. - Si un élément existant, mais pas encore visité, du tableau est modifié par
callbackFn, la valeur qui est passée àcallbackFnsera la valeur au moment où cet élément est visité. Les élémentssupprimés ne sont pas visités.
Attention :Les modifications concurrentes du type décrit ci‑dessus conduisent souvent à un code difficile à comprendre et doivent généralement être évitées (sauf dans des cas particuliers).
La méthodesome() estgénérique. Elle suppose seulement que la valeurthis possède une propriétélength et des propriétés indexées par des entiers.
Exemples
>Tester la valeur des éléments d'un tableau
L'exemple suivant teste si un élément du tableau est supérieur à 10.
function isBiggerThan10(element, index, array) { return element > 10;}[2, 5, 8, 1, 4].some(isBiggerThan10); // false[12, 5, 8, 1, 4].some(isBiggerThan10); // trueTester les éléments du tableau avec des fonctions fléchées
Les fonctions fléchées offrent une syntaxe plus concise pour le même test.
[2, 5, 8, 1, 4].some((x) => x > 10); // false[12, 5, 8, 1, 4].some((x) => x > 10); // trueVérifier si une valeur est présente dans un tableau
Pour reproduire le comportement de la méthodeincludes(), cette fonction personnalisée retournetrue si la valeur est présente dans le tableau :
const fruits = ["apple", "banana", "mango", "guava"];function checkAvailability(arr, val) { return arr.some((arrVal) => val === arrVal);}checkAvailability(fruits, "grapefruit"); // falsecheckAvailability(fruits, "banana"); // trueConvertir une valeur en booléen
const TRUTHY_VALUES = [true, "true", 1];function getBoolean(value) { if (typeof value === "string") { value = value.toLowerCase().trim(); } return TRUTHY_VALUES.some((t) => t === value);}getBoolean(false); // falsegetBoolean("false"); // falsegetBoolean(1); // truegetBoolean("true"); // trueUtiliser le troisième argumentcallbackFn
L'argumentarray est utile si vous souhaitez accéder à un autre élément du tableau, en particulier lorsque vous n'avez pas de variable qui référence déjà le tableau. L'exemple suivant utilise d'abordfilter() pour extraire les valeurs positives, puissome() pour vérifier si le tableau est strictement croissant.
const numbers = [3, -1, 1, 4, 1, 5];const isIncreasing = !numbers .filter((num) => num > 0) .some((num, idx, arr) => { // Sans l'argument arr, il est difficile d'accéder // au tableau intermédiaire sans le sauvegarder dans une variable. if (idx === 0) return false; return num <= arr[idx - 1]; });console.log(isIncreasing); // falseUtilisersome() sur des tableaux creux
some() n'exécutera pas son prédicat sur les emplacements vides.
console.log([1, , 3].some((x) => x === undefined)); // falseconsole.log([1, , 1].some((x) => x !== 1)); // falseconsole.log([1, undefined, 1].some((x) => x !== 1)); // trueAppelersome() sur des objets non-tableaux
La méthodesome() lit la propriétélength dethis puis accède à chaque propriété dont la clé est un entier non négatif inférieur àlength, jusqu'à ce qu'elles aient toutes été consultées ou quecallbackFn retournetrue.
const objetSimilaireTableau = { length: 3, 0: "a", 1: "b", 2: "c", 3: 3, // ignoré par some() car length vaut 3};console.log( Array.prototype.some.call( objetSimilaireTableau, (x) => typeof x === "number", ),);// falseSpécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.prototype.some> |
Compatibilité des navigateurs
Voir aussi
- Guide des collections indexées
- L'objet global
Array - La méthode
Array.prototype.every() - La méthode
Array.prototype.forEach() - La méthode
Array.prototype.find() - La méthode
Array.prototype.includes() - La méthode
TypedArray.prototype.some() - Prothèse d'émulation de
Array.prototype.somedanscore-js(angl.) - Prothèse d'émulation es-shims de
Array.prototype.some(angl.)