Typy złożone na przykładzie: tablic i obiektów

W JavaScript istnieją dwie podstawowe struktury danych. Mowa tutaj o tablicach i Obiektach. W porównaniu do typów prostych reprezentują zbiór wartości. Zapewne opanowałeś już podstawowe typy danych w JavaScript, nadszedł więc czas na przybliżenie typów złożonych jakim są obiekty i tablice.

Obiekty

W JavaScript obiekt jest bytem podobnym do tablicy, różnica polega na własnym tworzeniu kluczy. Przez co nie jesteśmy ograniczeni w nazewnictwie wyłącznie do kluczy numerycznych.
Wyobraźmy sobie samochody. Każda z nich jest jakoś nazywany. Przykładowo : Opel – Astra. Mamy tutaj markę wraz z  towarzyszącym mu modelem. Podobnie reprezentuje się struktura obiektu. W obiekcie znajdują się pary – "własność": wartość . Należy pamiętać że każda własność musi posiadać unikalną nazwę. Natomiast wartość jest dowolna (liczby, wartości logiczne, ciągi znaków, tablice, obiekty lub funkcje).

Literały obiektowe nie posiadające zagnieżdżenia mają bardzo prostą konstrukcję. Możemy je stworzyć za pomocą

1. Obiektu Literału
 let obj = {} // konstruuje pusty obiekt
 let  person = {
     name: "Jan Kowalski",
     email: "jankowalski@email.com",
 }
 let  objXY = {x: 0, y: 0} 
2. Konstruktora
 class Person  {
     constructor(name, surname) {
     this.name = name;
     this.surname =   surname ;
    }
 }
 const daneOsobowe = new Person(Jan,Kowalski);
 console.log(daneOsobowe.name); // output  Jan;
 console.log(daneOsobowe.surname); // output Kowalski
2. Metoda Object.create()
const car = {
   isHibryd: false,
   printIntroduction: function() {
     console.log(`Marka ${this.model}. To Hybryda? ${this.isHibryd}`);
  }
 };
 let myCar= Object.create(car);
 myCar.model= 'Matthew'; // "model" jest własnością instancji obiektu person o nazwie me
 myCar.isHibryd= true; // właściwości dziedziczone mogą być nadpisywane
 myCar.printIntroduction(); 
//  wywołanie funkcji która znajduje się wewnątrz obiektu  
// "Model Corsa. To Hybryda? true"

Można potocznie uznać, iż obiekty są w w istocie tablicami asocjacyjnymi. Obiekt prezentuje się podobnie jak tablica, dlatego że jest zbiorem nazwanych wartości . Właśnie dlatego możemy się odnieść do określonego elementu poprzez nawias kwadratowy.

Tablice

Tablica jest także zbiorem wartości. Służą do przechowywania wielu elementów które są w dodatku  uporządkowanym zbiorem, przeciwnie do wcześniej wspomnianego obiektu który jest zbiorem  nazwanych wartości.

Do czego służy tablica ? Mianowicie wyobraźmy sobie że mamy kilka marek samochodów które jak wiadomo posiadają różne modele. Najlepszym sposobem na uporządkowanie tego typu danych będzie służyć tablica.

 const opel = ["astra", "vectra", "insignia", "corsa" ];
 const toyota = ["avensis", "camry", "celica"];
 const ford = ["fiesta", "focus", "mondeo"];
 const samochody = [[opel], [toyota],[ford], ]; 

Każdy element posiada  pozycje czyli  numerem w tablicy – pozycja nazywana jest indeksem. Dzięki  nim tablice doskonale nadają się do iteracji  przy użyciu pętli for.

 const opel = ["astra", "vectra", "insignia", "corsa" ];
// Sprawdźmy indexy poszczególnych elementów w tablicy
 console.log(opel.indexOf("astra", "vectra", "insignia", "corsa"));
// Wykonajmy pętle aby sprawdzić każdy element tablicy
for (let i = 0; i < opel.length; i++) {
  console.log(opel[i]);
}

<- Wynik z metody indexOf ->
0
1
2
3
<- Wynik z pętli for ->
astra
vectra
insignia
corsa

Pamiętajmy o tym że tablice są liczone od zera,  dlatego pierwszy element ma indeks 0

Nie możemy uzyskać dostępu do elementów tablicy przy użyciu notacji z kropką –  jak podczas uzyskiwania dostępu do elementów obiektu. Dostęp do poszczególnych elementów uzyskujemy przez podanie w tablicy numeru indeksu.

console.log (opel [0]); //  - wypisuje wartość pierwszego elementu 

astra

Tablice tak jak obiekty możemy tworzyć na różne sposoby.

1. Obiekt Literału
 const owoce = ['kiwi', 'mango'];
2. Konstruktora
 const owoce = new Array("kiwi","mango");
3. Metoda Array.of
 const owoce = Array.of("kiwi","mango");
4. Metoda Array.from
 const owoce = Array.from("kiwi","mango");

Podsumowanie

W tym artykule omówiliśmy, krótko czym są i jak tworzyć złożone typy danych jakimi są obiekty i tablice. W późniejszym czasie omówimy poszczególne metody z użyciem tych dwóch typów danych.

Brak komentarzy

Dodaj komentarz