Leçons du module (3/4)
find, some, every
Trois méthodes compactes pour rechercher dans un tableau sans avoir à écrire de boucle manuelle.
find : le premier qui satisfait une condition
const utenti = [
{ nome: 'Anna', eta: 30 },
{ nome: 'Luca', eta: 12 },
{ nome: 'Sara', eta: 18 },
];
utenti.find((u) => u.eta >= 18);
// { nome: 'Anna', eta: 30 }
utenti.find((u) => u.nome === 'Marco');
// undefined ← se nessuno corrispondeVariante findIndex : renvoie l'index (ou -1).
some : au moins un
const nums = [1, 2, 3, 4, 5];
nums.some((n) => n > 4); // true
nums.some((n) => n > 100); // false
[].some(() => true); // false ← su array vuoto è sempre falseevery : tous
const nums = [1, 2, 3, 4, 5];
nums.every((n) => n > 0); // true
nums.every((n) => n > 2); // false
[].every(() => false); // true ← su array vuoto è sempre true!L'asymétrie de some et every sur un tableau vide est intentionnelle et logiquement
cohérente avec les opérateurs logiques "il existe" (∃) et "pour tout" (∀).
À toi de jouer
Définis `firstAdult(users)` : étant donné un tableau d'objets { name, age }, renvoie le name du premier ayant age >= 18, ou null si aucun ne l'est. Utilise find.
Afficher l'indice
users.find(...) ; s'il est trouvé, renvoie u.name, sinon null.
Solution disponible après 3 tentatives
Exercice de révision
Définis `allPositive(nums)` : renvoie true si tous les éléments de nums sont > 0 (et que le tableau n'est PAS vide), sinon false. Utilise every + une vérification de la longueur (length).
Afficher l'indice
length > 0 && nums.every(n => n > 0)
Solution disponible après 3 tentatives