Iterator : méthode every()
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 every() des instances de Iterator est similaire à Array.prototype.every() : elle retourne false si elle trouve un élément qui ne satisfait pas la fonction de test fournie. Sinon, si l'itérateur est épuisé sans trouver un tel élément, elle retourne true.
Syntaxe
every(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 callbackFn retourne une valeur équivalente à vrai pour chaque élément. Sinon, false.
Description
every() parcourt l'itérateur et invoque la fonction callbackFn une fois pour chaque élément. Elle retourne immédiatement false si la fonction de rappel retourne une valeur équivalente à faux. Sinon, elle parcourt jusqu'à la fin de l'itérateur et retourne true. Si every() retourne false, l'itérateur sous-jacent est fermé en appelant sa méthode return().
L'avantage principal des aides d'itérateur par rapport aux méthodes de tableau est qu'elles sont paresseuses, c'est‑à‑dire qu'elles ne produisent la valeur suivante que lorsqu'elle est demandée. Cela évite des calculs inutiles et permet de les utiliser avec des itérateurs infinis. Avec des itérateurs infinis, every() retourne false dès que la première valeur équivalente à faux est trouvée. Si le callbackFn retourne toujours une valeur équivalente à vrai, la méthode ne retourne jamais.
Exemples
>Utiliser la méthode every()
function* fibonacci() {
let current = 1;
let next = 1;
while (true) {
yield current;
[current, next] = [next, current + next];
}
}
const isEven = (x) => x % 2 === 0;
console.log(fibonacci().every(isEven)); // false
const isPositive = (x) => x > 0;
console.log(fibonacci().take(10).every(isPositive)); // true
console.log(fibonacci().every(isPositive)); // Ne se termine jamais
Appeler every() ferme toujours l'itérateur sous-jacent, même si la méthode est retournée prématurément. L'itérateur n'est jamais laissé dans un état intermédiaire.
const seq = fibonacci();
console.log(seq.every(isEven)); // false
console.log(seq.next()); // { value: undefined, done: true }
Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-iterator.prototype.every> |