HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
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
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éthode some() des instances Array retourne true si elle trouve un élément dans le tableau qui satisfait la fonction de test fournie. Sinon, elle retourne false.
some()
Array
true
false
const array = [1, 2, 3, 4, 5]; // Vérifie si un élément est pair const even = (element) => element % 2 === 0; console.log(array.some(even)); // Résultat attendu : true
some(callbackFn) some(callbackFn, thisArg)
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 lequel some() a été appelé.
thisArg
Une valeur à utiliser comme this lors de l'exécution de callbackFn. Voir méthodes itératives.
this
false si callbackFn ne retourne pas une valeur équivalente à vrai pour un élément du tableau ; dans le cas contraire, true est retourné immédiatement.
La méthode some() est une méthode itérative. Elle appelle la fonction fournie callbackFn une fois pour chaque élément d'un tableau, jusqu'à ce que callbackFn retourne une valeur équivalente à vrai. Si un tel élément est trouvé, some() retourne immédiatement true et cesse d'itérer sur le tableau. Dans le cas contraire, si callbackFn retourne une valeur équivalente à faux pour tous les éléments, some() retourne false. Consultez la section mé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 retourne false 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 les tableaux creux.
some() ne modifie pas le tableau sur lequel elle est appelée, mais la fonction fournie en tant que callbackFn peut le faire. Notez toutefois que la longueur du tableau est enregistrée avant la première invocation de callbackFn. Par conséquent :
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éthode some() est générique. Elle suppose seulement que la valeur this possède une propriété length et des propriétés indexées par des entiers.
length
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); // true
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); // true
Pour reproduire le comportement de la méthode includes(), cette fonction personnalisée retourne true si la valeur est présente dans le tableau :
includes()
const fruits = ["apple", "banana", "mango", "guava"]; function checkAvailability(arr, val) { return arr.some((arrVal) => val === arrVal); } checkAvailability(fruits, "grapefruit"); // false checkAvailability(fruits, "banana"); // true
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
L'argument array 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'abord filter() pour extraire les valeurs positives, puis some() pour vérifier si le tableau est strictement croissant.
filter()
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
some() n'exécutera pas son prédicat sur les emplacements vides.
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
La méthode some() lit la propriété length de this 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 que callbackFn retourne true.
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
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Array.prototype.every()
Array.prototype.forEach()
Array.prototype.find()
Array.prototype.includes()
TypedArray.prototype.some()
Array.prototype.some
core-js