Lecciones del módulo (3/4)
find, some, every
Tres métodos compactos para buscar en un array sin escribir el bucle a mano.
find: el primero que cumple una condición
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: devuelve el índice (o -1).
some: al menos uno
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: todos
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!La asimetría de some y every en arrays vacíos es intencionada y lógicamente coherente
con los operadores lógicos "existe" (∃) y "para todo" (∀).
Pruébalo tú mismo
Define `firstAdult(users)`: dado un array de { name, age }, devuelve el name del primero con age >= 18, o null si ninguno lo es. Usa find.
Mostrar pista
users.find(...); si lo encuentra devuelve u.name, de lo contrario null.
Solución disponible después de 3 intentos
Ejercicio de repaso
Define `allPositive(nums)`: devuelve true si todos los elementos de nums son > 0 (y el array NO está vacío), de lo contrario false. Usa every + una comprobación de length.
Mostrar pista
length > 0 && nums.every(n => n > 0)
Solución disponible después de 3 intentos