Vai al contenuto
eLearner.app
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 corrisponde

Variante 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 false

every: 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