Module 6 · Leçon 3 sur 423/32 dans le cours~10 min
Leçons du module (3/4)
find, some, every
Tre metodi compatti per cercare in un array senza scrivere il loop a mano.
find: il primo che soddisfa
JS
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: restituisce l'indice (o -1).
some: almeno uno
JS
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: tutti
JS
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'asimmetria di some e every su array vuoto è intenzionale e logicamente coerente con
gli operatori logici "esiste" (∃) e "per ogni" (∀).
Prova tu
Exercice#js.m6.l3.e1
Tentatives : 0Chargement…
Definisci `firstAdult(users)`: dato un array di { name, age }, ritorna il name del primo con age >= 18, o null se nessuno. Usa find.
Chargement de l'éditeur…
Afficher l'indice
users.find(...); se trovato torna u.name, altrimenti null.
Solution disponible après 3 tentatives
Esercizio di ripasso
Exercice#js.m6.l3.e2
Tentatives : 0Chargement…
Definisci `allPositive(nums)`: ritorna true se tutti gli elementi di nums sono > 0 (e l'array NON è vuoto), altrimenti false. Usa every + un controllo length.
Chargement de l'éditeur…
Afficher l'indice
length > 0 && nums.every(n => n > 0)
Solution disponible après 3 tentatives