[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/some [Back]  [Original]

Array : mthode some() - JavaScript | MDN

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 English Always switch to English

Array : mthode some()

Baseline Large disponibilit

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 mthode some() des instances Array retourne true si elle trouve un lment dans le tableau qui satisfait la fonction de test fournie. Sinon, elle retourne false.

Dans cet article

Exemple interactif

const array = [1, 2, 3, 4, 5];

// Vrifie si un lment est pair
const even = (element) => element % 2 === 0;

console.log(array.some(even));
// Rsultat attendu : true

Syntaxe

js
some(callbackFn)
some(callbackFn, thisArg)

Paramtres

callbackFn

Une fonction excuter pour chaque lment du tableau. Elle doit retourner une valeur quivalente vrai pour indiquer que l'lment passe le test, et une valeur quivalente faux sinon. La fonction est appele avec les arguments suivants :

element

L'lment courant trait dans le tableau.

index

L'indice de l'lment courant trait dans le tableau.

array

Le tableau sur lequel some() a t appel.

thisArg Facultatif

Une valeur utiliser comme this lors de l'excution de callbackFn. Voir mthodes itratives.

Valeur de retour

false si callbackFn ne retourne pas une valeur quivalente vrai pour un lment du tableau ; dans le cas contraire, true est retourn immdiatement.

Description

La mthode some() est une mthode itrative. Elle appelle la fonction fournie callbackFn une fois pour chaque lment d'un tableau, jusqu' ce que callbackFn retourne une valeur quivalente vrai. Si un tel lment est trouv, some() retourne immdiatement true et cesse d'itrer sur le tableau. Dans le cas contraire, si callbackFn retourne une valeur quivalente faux pour tous les lments, some() retourne false. Consultez la section mthodes itratives pour plus d'informations sur le fonctionnement gnral de ces mthodes.

some() correspond  il existe  en logique mathmatique. En particulier, pour un tableau vide, elle retourne false pour toute condition.

callbackFn n'est invoqu que pour les indices du tableau auxquels des valeurs sont assignes. Il n'est pas invoqu pour les emplacements vides dans les tableaux creux.

some() ne modifie pas le tableau sur lequel elle est appele, mais la fonction fournie en tant que callbackFn peut le faire. Notez toutefois que la longueur du tableau est enregistre avant la premire invocation de callbackFn. Par consquent :

  • callbackFn ne visitera aucun lment ajouts au-del de la longueur initiale du tableau au moment o l'appel some() a commenc.
  • Les modifications apportes aux indices dj visits ne provoquent pas que callbackFn soit invoque de nouveau pour ces indices.
  • Si un lment existant, mais pas encore visit, du tableau est modifi par callbackFn, la valeur qui est passe callbackFn sera la valeur au moment o cet lment est visit. Les lments supprims ne sont pas visits.

Attention : Les modifications concurrentes du type dcrit cidessus conduisent souvent un code difficile comprendre et doivent gnralement tre vites (sauf dans des cas particuliers).

La mthode some() est gnrique. Elle suppose seulement que la valeur this possde une proprit length et des proprits indexes par des entiers.

Exemples

Tester la valeur des lments d'un tableau

L'exemple suivant teste si un lment du tableau est suprieur 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 lments du tableau avec des fonctions flches

Les fonctions flches offrent une syntaxe plus concise pour le mme test.

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

Vrifier si une valeur est prsente dans un tableau

Pour reproduire le comportement de la mthode includes(), cette fonction personnalise retourne true si la valeur est prsente dans le tableau :

js
const fruits = ["apple", "banana", "mango", "guava"];

function checkAvailability(arr, val) {
  return arr.some((arrVal) => val === arrVal);
}

checkAvailability(fruits, "grapefruit"); // false
checkAvailability(fruits, "banana"); // true

Convertir une valeur en boolen

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); // false
getBoolean("false"); // false
getBoolean(1); // true
getBoolean("true"); // true

Utiliser le troisime argument callbackFn

L'argument array est utile si vous souhaitez accder un autre lment du tableau, en particulier lorsque vous n'avez pas de variable qui rfrence dj le tableau. L'exemple suivant utilise d'abord filter() pour extraire les valeurs positives, puis some() pour vrifier 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'accder
    // au tableau intermdiaire sans le sauvegarder dans une variable.
    if (idx === 0) return false;
    return num <= arr[idx - 1];
  });
console.log(isIncreasing); // false

Utiliser some() sur des tableaux creux

some() n'excutera pas son prdicat sur les emplacements vides.

js
console.log([1, , 3].some((x) => x === undefined)); // false
console.log([1, , 1].some((x) => x !== 1)); // false
console.log([1, undefined, 1].some((x) => x !== 1)); // true

Appeler some() sur des objets non-tableaux

La mthode some() lit la proprit length de this puis accde chaque proprit dont la cl est un entier non ngatif infrieur length, jusqu' ce qu'elles aient toutes t consultes ou que callbackFn retourne true.

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

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-array.prototype.some

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page