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
- Loo objekt
raamat, millel on vähemalt kolm omadust:pealkiri,autor,aasta. - Lisa meetod, mis kuvab raamatu kirjelduse.
- Lisa meetod, mis muudab väljaandmise aastat ja prindi tulemused konsooli.
Kood:
Raamatukogu
- Loo objekt
raamatukogu, mille omaduseks onraamatud(massiiv raamatutest). - Lisa meetod, mis kuvab kõik raamatud kenasti konsoolis.
- Lisa meetod, mis lisab uue raamatu.
- Lisa meetod, mis kuvab raamatukogu raamatute koguarvu.
- Lisa meetod, mis arvutab, mitu raamatut on ilmunud pärast 2000. aastat.
- Koosta oma meetod ja kirjuta mida meetod tähendab