Iterator : méthode some()
Baseline
2025
Newly available
Depuis March 2025, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.
La méthode some() des instances de Iterator est similaire à Array.prototype.some() : elle retourne true si elle trouve un élément qui satisfait la fonction de test fournie. Sinon, si l'itérateur est épuisé sans trouver un tel élément, elle retourne false.
Syntaxe
some(callbackFn)
Paramètres
callbackFn-
Une fonction à exécuter pour chaque élément produit par l'itérateur. 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 :
Valeur de retour
true si la fonction de rappel retourne une valeur équivalente à vrai pour au moins un élément. Sinon, false.
Description
some() parcourt l'itérateur et invoque la fonction callbackFn une fois pour chaque élément. Elle retourne true immédiatement si la fonction de rappel retourne une valeur équivalente à vrai. Sinon, elle itère jusqu'à la fin de l'itérateur et retourne false. Si some() retourne true, l'itérateur sous-jacent est fermé en appelant sa méthode return().
L'avantage principal des objets d'aide à l'itérateur par rapport aux méthodes de tableau est qu'ils sont paresseux, ce qui signifie qu'ils ne produisent la valeur suivante que lorsqu'elle est demandée. Cela évite les calculs inutiles et permet également de les utiliser avec des itérateurs infinis. Avec des itérateurs infinis, some() retourne true dès que la première valeur équivalente à vrai est trouvée. Si callbackFn retourne toujours une valeur équivalente à faux, la méthode ne se termine jamais.
Exemples
>Utiliser la méthode some()
function* fibonacci() {
let actuel = 1;
let suivant = 1;
while (true) {
yield actuel;
[actuel, suivant] = [suivant, actuel + suivant];
}
}
const estPair = (x) => x % 2 === 0;
console.log(fibonacci().some(estPair)); // true
const estNegatif = (x) => x < 0;
console.log(fibonacci().take(10).some(estNegatif)); // false
console.log(fibonacci().some(estNegatif)); // Ne se termine jamais
L'appel à some() ferme toujours l'itérateur sous-jacent, même si la méthode retourne tôt. L'itérateur ne reste jamais dans un état intermédiaire.
const seq = fibonacci();
console.log(seq.some(estPair)); // true
console.log(seq.next()); // { value: undefined, done: true }
Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-iterator.prototype.some> |