Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Objets natifs standards
  5. Array
  6. some()

Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in EnglishAlways switch to English

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.

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 : true

Syntaxe

js
some(callbackFn)some(callbackFn, thisArg)

Paramètres

callbackFn

Une 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 :

element

L'élément courant traité dans le tableau.

index

L'indice de l'élément courant traité dans le tableau.

array

Le tableau sur lequelsome() a été appelé.

thisArgFacultatif

Une valeur à utiliser commethis lors 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 :

  • callbackFn ne 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 quecallbackFn soit invoquée de nouveau pour ces indices.
  • Si un élément existant, mais pas encore visité, du tableau est modifié parcallbackFn, la valeur qui est passée àcallbackFn sera 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.

js
function isBiggerThan10(element, index, array) {  return element > 10;}[2, 5, 8, 1, 4].some(isBiggerThan10); // false[12, 5, 8, 1, 4].some(isBiggerThan10); // true

Tester 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.

js
[2, 5, 8, 1, 4].some((x) => x > 10); // false[12, 5, 8, 1, 4].some((x) => x > 10); // true

Vé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 :

js
const fruits = ["apple", "banana", "mango", "guava"];function checkAvailability(arr, val) {  return arr.some((arrVal) => val === arrVal);}checkAvailability(fruits, "grapefruit"); // falsecheckAvailability(fruits, "banana"); // true

Convertir une valeur en booléen

js
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"); // true

Utiliser 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.

js
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); // false

Utilisersome() sur des tableaux creux

some() n'exécutera pas son prédicat sur les emplacements vides.

js
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)); // true

Appelersome() 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.

js
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",  ),);// false

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.some

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp