Tablice: Wyszukiwanie i Filtrowanie
Javascript
Priorytet: Normalny
Szkic
Zadanie 4.4: Szukanie i Filtrowanie
Wstęp
Masz tablicę 1000 produktów. Jak znaleźć ten o ID 55? Albo jak wyświetlić tylko produkty tańsze niż 50 zł? Ręczne pisanie pętli for jest możliwe, ale JavaScript ma do tego dedykowane, szybsze w zapisie metody.
Cel zadania
Opanowanie metod:
includes()- sprawdź czy element istnieje.find()- znajdź pierwszy element pasujący do warunku.filter()- znajdź wszystkie elementy pasujące do warunku.
Przegląd metod
1. Sprawdzanie obecności (includes)
Zwraca true lub false. Proste i szybkie.
const tags = ["promocja", "lato", "wyprzedaż"];
const isPromo = tags.includes("promocja"); // true
2. Szukanie konkretnego elementu (find)
Przyjmuje funkcję warunkową. Zwraca pierwszy pasujący element lub undefined.
const users = [
{ id: 1, name: "Jan" },
{ id: 2, name: "Anna" },
{ id: 3, name: "Piotr" }
];
// Znajdź użytkownika o ID 2
const user = users.find(u => u.id === 2);
console.log(user.name); // "Anna"
3. Filtrowanie listy (filter)
Zwraca nową tablicę ze wszystkimi elementami, które spełniają warunek.
const prices = [10, 200, 5, 50, 100];
// Wybierz tylko tanie rzeczy (< 100)
const cheap = prices.filter(price => price < 100);
console.log(cheap); // [10, 5, 50]
Kroki do wykonania
Scenariusz: Lista zadań
Masz tablicę zadań (obiektów):
const tasks = [
{ text: "Wynieść śmieci", done: true },
{ text: "Nauczyć się JS", done: false },
{ text: "Zrobić zakupy", done: true },
{ text: "Naprawić rower", done: false }
];
- Szukanie: Użyj
find, aby znaleźć zadanie o treści "Naprawić rower" i wypisz je w konsoli. - Filtrowanie: Użyj
filter, aby stworzyć nową tablicętodoListzawierającą tylko zadania niezrobione (done: false). - Sprawdzanie: Utwórz prostą tablicę tagów
["pilne", "dom"]. Sprawdź za pomocąincludesczy zawiera tag "praca".
[!IMPORTANT] Commit: Zadanie 4.4 - Filter i Find.
Zadanie dla chętnych
Połącz metody! Z tablicy liczb [5, 12, 8, 130, 44] wybierz te większe od 10 (filter), a następnie znajdź wśród nich pierwszą parzystą liczbę (find).