Lektionen des Moduls (3/4)
find, some, every
Drei kompakte Methoden zum Suchen in einem Array, ohne die Schleife von Hand schreiben zu müssen.
find: Das erste Element, das eine Bedingung erfüllt
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: Gibt den Index zurück (oder -1).
some: Mindestens eines
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: Alle
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!Die Asymmetrie von some und every bei leeren Arrays ist beabsichtigt und logisch konsistent
mit den logischen Operatoren „es existiert“ (∃) und „für alle“ (∀).
Probier es aus
Definiere `firstAdult(users)`: Gibt für ein gegebenes Array von { name, age } den Namen (name) der ersten Person zurück, deren age >= 18 ist, oder null, falls niemand die Bedingung erfüllt. Verwende find.
Hinweis anzeigen
users.find(...); wenn gefunden, u.name zurückgeben, andernfalls null.
Lösung nach 3 Versuchen verfügbar
Wiederholungsübung
Definiere `allPositive(nums)`: Gibt true zurück, wenn alle Elemente von nums > 0 sind (und das Array NICHT leer ist), andernfalls false. Verwende every + eine Längenprüfung (length).
Hinweis anzeigen
length > 0 && nums.every(n => n > 0)
Lösung nach 3 Versuchen verfügbar