Modulo 6 · Lezione 3 di 423/32 nel corso~10 min
Lezioni del modulo (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
Esercizio#js.m6.l3.e1
Tentativi: 0Caricamento…
Definisci `firstAdult(users)`: dato un array di { name, age }, ritorna il name del primo con age >= 18, o null se nessuno. Usa find.
Caricamento editor…
Mostra suggerimento
users.find(...); se trovato torna u.name, altrimenti null.
Soluzione disponibile dopo 3 tentativi
Esercizio di ripasso
Esercizio#js.m6.l3.e2
Tentativi: 0Caricamento…
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.
Caricamento editor…
Mostra suggerimento
length > 0 && nums.every(n => n > 0)
Soluzione disponibile dopo 3 tentativi