W Parku Jurajskim przechowujemy ogromne ilości danych o dinozaurach - ich imiona, gatunki, wiek, status zdrowia i wiele więcej. Aby efektywnie zarządzać tymi danymi, potrzebujemy dwóch fundamentalnych struktur danych JavaScript: obiektów i tablic.
Obiekt w JavaScript to kolekcja par klucz-wartość, która pozwala przechowywać powiązane ze sobą dane w jednym miejscu. Pomyśl o obiekcie jak o karcie informacyjnej dinozaura - zawiera wszystkie istotne dane w uporządkowany sposób.
Najprostszym sposobem tworzenia obiektu jest użycie nawiasów klamrowych
{}:1// Karta informacyjna Velociraptora
2const raptor = {
3 name: "Blue",
4 species: "Velociraptor",
5 age: 4,
6 isAlpha: true,
7 dangerLevel: 8
8};
9
10console.log(raptor); // Wyświetli cały obiektIstnieją dwa sposoby dostępu do właściwości obiektu:
1// 1. Notacja kropkowa (dot notation) - najczęściej używana
2console.log(raptor.name); // "Blue"
3console.log(raptor.age); // 4
4
5// 2. Notacja nawiasowa (bracket notation) - przydatna dla dynamicznych kluczy
6console.log(raptor["species"]); // "Velociraptor"
7
8const property = "dangerLevel";
9console.log(raptor[property]); // 8 - użyteczne gdy klucz jest w zmiennej1// Modyfikowanie istniejącej właściwości
2raptor.age = 5;
3
4// Dodawanie nowej właściwości
5raptor.habitat = "Wybieg A3";
6
7// Usuwanie właściwości
8delete raptor.habitat;Obiekt może zawierać funkcje jako wartości - nazywamy je metodami:
1const raptor = {
2 name: "Blue",
3 age: 4,
4 isAlpha: true,
5 skills: ["hunt", "communicate", "lead"],
6
7 // Metoda - funkcja wewnątrz obiektu
8 attack() {
9 return this.name + " atakuje!";
10 },
11
12 // Inna metoda z użyciem this
13 introduce() {
14 return "Jestem " + this.name + ", mam " + this.age + " lat.";
15 }
16};
17
18console.log(raptor.attack()); // "Blue atakuje!"
19console.log(raptor.introduce()); // "Jestem Blue, mam 4 lat."JavaScript udostępnia kilka przydatnych metod do pracy z obiektami:
1const dino = { name: "Rex", species: "T-Rex", age: 12 };
2
3// Object.keys() - tablica kluczy
4console.log(Object.keys(dino)); // ["name", "species", "age"]
5
6// Object.values() - tablica wartości
7console.log(Object.values(dino)); // ["Rex", "T-Rex", 12]
8
9// Object.entries() - tablica par [klucz, wartość]
10console.log(Object.entries(dino));
11// [["name", "Rex"], ["species", "T-Rex"], ["age", 12]]Tablica to uporządkowana lista elementów, idealna do przechowywania kolekcji danych tego samego typu.
1// Tablica nazw Velociraptorów
2const raptors = ["Blue", "Charlie", "Delta", "Echo"];
3
4// Tablica obiektów
5const dinosaurs = [
6 { name: "Blue", species: "Velociraptor", age: 4 },
7 { name: "Rex", species: "T-Rex", age: 12 },
8 { name: "Bronto", species: "Brachiosaurus", age: 8 }
9];
10
11console.log(raptors[0]); // "Blue" - pierwszy element (indeks 0)
12console.log(raptors.length); // 4 - liczba elementów
13console.log(dinosaurs[1].name); // "Rex" - dostęp do obiektu w tablicyObiekty i tablice można zagnieżdżać, tworząc złożone struktury danych:
1const park = {
2 name: "Jurassic Park",
3 sectors: [
4 {
5 id: "A",
6 name: "Strefa drapieżników",
7 dinosaurs: ["T-Rex", "Velociraptor"]
8 },
9 {
10 id: "B",
11 name: "Strefa roślinożerców",
12 dinosaurs: ["Brachiosaurus", "Triceratops"]
13 }
14 ]
15};
16
17console.log(park.sectors[0].dinosaurs[1]); // "Velociraptor"