| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/some | [Back] [Original] |
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.
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.
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
some(callbackFn)
some(callbackFn, thisArg)
callbackFnUne 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 :
thisArg FacultatifUne valeur utiliser comme this lors de l'excution de callbackFn. Voir mthodes itratives.
false si callbackFn ne retourne pas une valeur quivalente vrai pour un lment du tableau ; dans le cas contraire, true est retourn immdiatement.
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.callbackFn soit invoque de nouveau pour ces indices.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.
L'exemple suivant teste si un lment du tableau est suprieur 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 flches offrent une syntaxe plus concise pour le mme 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 mthode includes(), cette fonction personnalise retourne true si la valeur est prsente dans le tableau :
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
callbackFnL'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.
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
some() sur des tableaux creuxsome() n'excutera pas son prdicat 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
some() sur des objets non-tableauxLa 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.
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
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype.some |
ArrayArray.prototype.every()Array.prototype.forEach()Array.prototype.find()Array.prototype.includes()TypedArray.prototype.some()Array.prototype.some dans core-js (angl.)Array.prototype.some (angl.)Cette page a t modifie le 27 mars 2026 par les contributeurices du MDN.
Arrayat()concat()copyWithin()entries()every()fill()filter()find()findIndex()findLast()findLastIndex()flat()flatMap()forEach()includes()indexOf()join()keys()lastIndexOf()map()pop()push()reduce()reduceRight()reverse()shift()slice()some()sort()splice()toLocaleString()toReversed()toSorted()toSpliced()toString()unshift()values()with()[Symbol.iterator]()Object/FunctionObject.prototype.__defineGetter__()Object.prototype.__defineSetter__()Object.prototype.__lookupGetter__()Object.prototype.__lookupSetter__()Object.prototype.hasOwnProperty()Object.prototype.isPrototypeOf()Object.prototype.propertyIsEnumerable()Object.prototype.toLocaleString()Object.prototype.toString()Object.prototype.valueOf()Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |