JS Objektid ja Meetodid

Objektid on võimsad andmestruktuurid, mis võimaldavad teil organiseerida seotud andmeid ühte üksusesse.

Objekti Loomine

Selles näites on loodud objekt nimega “auto”, millel on järgmised omadused (properties):

let auto = {
        mark: "Mazda",
        mudel: "cx-5",
        aasta: 2021,
        varv: "valge",
        lisavarustus: ["kliimaseade", "elektriaknad", "navigatsioonisüsteem"]
    };
    console.log(auto);

Kasutame ka console.log(), et konsoolis näita see objekt ja kõik omadused mis me kirjutasime.

Iga objekti omadustele saab juurde pääseda, kasutades punktisüntaksit.

console.log(auto.mark);
console.log(auto.mudel);
console.log(auto.aasta);

Objekti meetodid ja this kasutamine

Objektid Javascriptis võivad sisaldada mitte ainult omadusi, vaid ka meetodeid. Meetodid on objekti funktsioonid.
Võtmesõna this kasutatakse meetodite sees, et viidata objektile, mille sees meetod on kutsutud.

let auto2 = {
        //omadused
        mark: "Mazda",
        mudel: "cx-5",
        aasta: 2021,
        varv: "valge",
        lisavarustus: ["kliimaseade", "elektriaknad", "navigatsioonisüsteem"]

        //meetodid
        taisnimi: function() {
            return this.mark + " " + this.mudel;
        }
    };

    console.log(auto.taisnimi());

Meetodi lühendamine

Uus Javascript ES6 lubab nüüd meetodi panna kirja ka lühemalt.

  taisnimi2() {
    return this.mark + " " + this.mudel;
  }

Objektide massiivid

Need on andmete struktuurid, mis sisaldavad palju objekte järjekorras.

Objektide massiivi loomine ja kuvamine

Siin on massiiv autod, milles on 3 auto objektid, kõikidel objektil on samasugused omadused.

let autod = [
  { mark: 'Mazda', mudel: 'CX-5', aasta: 2015 },
  { mark: 'Porsche', mudel: '2', aasta: 2022 },
  { mark: 'Wolkswagen', mudel: 'Model 3', aasta: 2020 }
];

Kui soovime näha konkreetse auto andmeid, saame viidata auto positsioonile massiivis.
Ja selles objektis saan elemendid kätte “punkti-süntaksiga”, nagu eespool:

console.log(autod[0]);
console.log(autod[0].mark);

forEach tsükkel

Kõikide mudelite nägemiseks kasutame jällegi forEach tsüklit:

autod.forEach((auto) => {
  console.log(`
    Mark: ${auto.mark},
    Mudel: ${auto.mudel},
    Aasta: ${auto.aasta}
    `);
});

Objekti massiivi meetodid

push()pop()shift()unshift()splice()slice()forEach()map()filter()reduce()sort(), jne.

push() – Lisab uue objekti massiivi lõppu.

autod.push({ mark: 'BMW', mudel: '320i', aasta: 2015 });

unshift() – Lisab uue objekti massiivi alguse.

autod.unshift({ mark: 'Ford', mudel: 'Focus', aasta: 2020 });

splice() – Ühaegselt kustutab ja lisab.

massiiv.splice(
  {start indeks},
  {mitu eemaldada},
  {mida lisada}
);
// Eemaldab esimese objekti
autod.splice(0,1);

//Lisab objekti alates teisest indeksist, ei kustutata midagi
autod.splice(1,0,{ mark: 'Audi', mudel: 'A4', aasta: 2018 });

Massiivist otsimine

Objektide massiivist otsimiseks kasutame find meetodit, mis tahab käivitamiseks funktsiooni. Kasutame noolfunktsiooni, kuna see lühem.

let otsing = autod.find(auto=>auto.aasta > 2018);
console.log(otsing);

Tähelepane et see tagastab ainult üks element mis on leidud. Antud meetod leiab esimese vaste ja tagastab selle.

Massiivi filtreerimine

Näiteks meil on arvud ja soovime sealt saada paarisarve:

let arvud = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const filtreeritud = arvud.filter(arv => arv % 2 === 0);
console.log(filtreeritud);

Autode puhul saame pöörduda näiteks auto.aasta poole ja filtreerida need, mis on uuemad kui 2018.

let filter = autod.filter(auto=>auto.aasta > 2018);
console.log(filter);

Massiivi sorteerimine

Erinevus filtreerimist et see ei leia uue massiivi, ehk ainult muutub massiiv mis on antud.
Lihtsalt sorteerimine objektide massivii puhul õigesti ei tööta. Seepärast peame kasutama võrdlusfunktsiooni.

// kui a - b annab arv mis on > 0, siis a läheb esimeseks järjekorras. See funktsioon töötleb kõikidel objektidel massiivis
autod.sort((a, b) => a.aasta - b.aasta);
console.log(autod);

Ülesanne

Raamat

  1. Loo objekt raamat, millel on vähemalt kolm omadust: pealkiri, autor, aasta.
  2. Lisa meetod, mis kuvab raamatu kirjelduse.
  3. Lisa meetod, mis muudab väljaandmise aastat ja prindi tulemused konsooli.

Kood:

Raamatukogu

  1. Loo objekt raamatukogu, mille omaduseks on raamatud (massiiv raamatutest).
  2. Lisa meetod, mis kuvab kõik raamatud kenasti konsoolis.
  3. Lisa meetod, mis lisab uue raamatu.
  4. Lisa meetod, mis kuvab raamatukogu raamatute koguarvu.
  5. Lisa meetod, mis arvutab, mitu raamatut on ilmunud pärast 2000. aastat.
  6. Koosta oma meetod ja kirjuta mida meetod tähendab

Lisa raamat:








Raamatukogu:

Link Lehele

Siin: https://artjompoldsaar24.thkit.ee/htmlTood/objekt