Passer au contenu principal
eLearner.app
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 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

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