JavaScripti objektid – konspekt
- Objektid on võimsad andmestruktuurid, mis võimaldavad organiseerida seotud andmeid ühte üksusesse.
- Objektid koosnevad võtme–väärtuse paaridest, kus:
- võti on sõne (string)
- väärtus võib olla mis tahes JavaScripti andmetüüp (arv, sõne, massiiv, funktsioon jne).
- Objektid pakuvad suurepärast viisi andmete struktureerimiseks ja manipuleerimiseks.
- Igapäevaelus võime objekte kohata mitmel viisil.
- JavaScripti programmides on võimalik:
- luua ise kohandatud objekte
- kasutada sisseehitatud objekte, mida JavaScript ise pakub.
Sisseehitatud objektid:
Mathobjekt sisaldab matemaatilisi funktsioone ja konstante. Seda kasutatakse sageli matemaatiliste arvutuste tegemiseks, nagu ümardamine, ruutjuur, trigonomeetria funktsioonid jne.Dateobjekt võimaldab töötada kuupäevade ja kellaaegadega. Selle abil saab luua uusi kuupäevaobjekte, saada juurde kuupäeva komponente (nagu päev, kuu, aasta) ja teha erinevaid toiminguid kuupäevade vahel.Arrayobjekt on sisseehitatud objekt, mida kasutatakse massiivide loomiseks ja manipuleerimiseks. See sisaldab mitmeid meetodeid, mis võimaldavad massiividega töötada, nagu elemendi lisamine, eemaldamine, sorteerimine, filtreerimine jne.Stringobjekt sisaldab meetodeid, mis võimaldavad töötada sõnedega. Näiteks, saate kasutada meetodeid nagulength(pikkuse saamine),toUpperCase(suurte tähtede kasutamine),substring(alamstringi võtmine) jne.Objectobjekt on JavaScripti alusobjekt, mida kasutatakse kõikide objektide baasina. Selle meetodeid saab kasutada objektide loomiseks, omaduste lisamiseks ja juurdepääsuks, objektide kopeerimiseks jne.
Objekti loomine
Objekti süntaks koosneb võtme-väärtuse paari paaridest, kus võti on sõne ja väärtus võib olla mis tahes Javascripti andmetüüp. Selles näites on loodud objekt nimega “auto”, millel on järgmised omadused (properties):
let auto = {
mark: "Volkswagen",
mudel: "Golf",
aasta: 2008,
varv: "must",
lisavarustus: ["ABS", "elektriaknad", "CarPlay"]
};
console.log(auto);
Tulemus:

Objekti meetodid ja this kasutamine
Objektid Javascriptis võivad sisaldada mitte ainult omadusi, vaid ka meetodeid. Meetodid on objekti funktsioonid, mis võivad manipuleerida objekti omadustega või teostada muid toiminguid objekti kontekstis. this võtmesõna kasutatakse meetodite sees, et viidata objektile, mille sees meetod on kutsutud. Tekitame raamatu objektile meetodi, mis kuvab raamatu täispika nime. Selleks, et meetod saaks kasutada sama objekti omadusi, siis tuleb kasutada this võtmesõna.
let raamat = {
//omadused
nimi: "IT",
autor: "Stephen King",
aasta: 1998,
lehekuljed: 356,
zanr: ["horror", "thriller", "action"],
//meetodid
taisnimi: function() {
return this.nimi + " " + this.autor;
}
};
console.log(raamat.taisnimi());
Tulemus:

Meetodi lühendamine:
//meetodid
taisnimi() {
return this.nimi+ " " + this.autor;
}
Tulemus lühendamisega:

Kui omadused on massiivis, siis kasuta for või forEach tsüklit.
let raamat = {
//omadused
nimi: "IT",
autor: "Stephen King",
aasta: 1998,
lehekuljed: 356,
omadused: ["horror", "thriller", "action"],
//meetodid
taisnimi() {
return this.nimi+ " " + this.autor;
},
kuvaOmadused() {
this.omadused.forEach(omadus => console.log(omadus));
}
};
raamat.kuvaOmadused();
Tulemus:

Objektide massiivid
Objektide massiiv on JavaScriptis andmete struktuur, mis koosneb mitmest objektist, mis on järjestatud indeksi alusel. Iga objekt on võti-väärtuse paaride kogum, kus võti on unikaalne ja väärtus on võti-väärtuse paari andmed. Objektide massiiv võib sisaldada mitmesuguseid andmetüüpe, sealhulgas teksti (string), numbreid, tõeväärtusi (boolean), funktsioone, muid objekte jne.
Objektide massiivi loomine ja kuvamine
let raamatud = [
{ nimi: 'IT', autor: 'Stephen King', aasta: 1998 },
{ nimi: 'Wonderlands', autor: 'Alex Prokazjka', aasta: 2012 },
{ nimi: 'Tom Sorry', autor: 'Alexandr Alblakov', aasta: 2019 }
];
console.log(raamatud);
Tulemus:

Kõikide mudelite nägemiseks kasutame jällegi forEach tsüklit
let raamatud = [
{ nimi: 'IT', autor: 'Stephen King', aasta: 1998 },
{ nimi: 'Wonderlands', autor: 'Alex Prokazjka', aasta: 2012 },
{ nimi: 'Tom Sorry', autor: 'Alexandr Alblakov', aasta: 2019 }
];
raamatud.forEach((raamat) => {
console.log(`
Nimi: ${raamat.nimi},
Autor: ${raamat.autor},
Aasta: ${raamat.aasta}
`);
});
Tulemus:

Objekti massiivi meetodid
JavaScripti massiivide meetodid on kasutatavad nii tavaliste massiivide kui ka objektide massiivide puhul. Sellised meetodid nagu push(), pop(), shift(), unshift(), splice(), slice(), forEach(), map(), filter(), reduce(), sort(), jne. on kõik kasutatavad sõltumata sellest, kas massiiv sisaldab lihtsaid andmetüüpe (näiteks stringid või numbrid) või keerukamaid andmeid (näiteks objekte või isegi teisi massiive).
let raamatud = [
{ nimi: 'IT', autor: 'Stephen King', aasta: 1998 },
{ nimi: 'Wonderlands', autor: 'Alex Prokazjka', aasta: 2012 },
{ nimi: 'Tom Sorry', autor: 'Alexandr Alblakov', aasta: 2019 }
];
//Lisab uue objekti massiivi lõppu
raamatud.push({ nimi: 'Crack', autor: 'Walter Johns', aasta: 2015 });
raamatud.unshift({ nimi: 'Dezhavu', autor: 'Oleg Kizaru', aasta: 2020 });
console.log(raamatud);
Tulemus:

Meetod splice ühaegselt kustutab ja lisab.
//Eemaldab esimese objekti
raamatud.splice(0,1);
//Lisab objekti alates teisest indeksist, ei kustutata midagi
raamatud.splice(1,0,{ nimi: 'Monkey world', autor: 'Dima B.', aasta: 2018 });
console.log(raamatud);
Tulemus:

Massiivist otsimine
Objektide massiivist otsimiseks kasutame find meetodit, mis tahab käivitamiseks funktsiooni. Kasutame noolfunktsiooni, kuna see lühem.
let otsing = raamatud.find(raamat=>raamat.aasta > 2018);
console.log(otsing);
Tulemus:

Massiivi filtreerimine
Kuna find leiab vaid ühe tulemuse, siis mitme vastuse saamiseks kasuta filter meetodit. Filter loob massiivist uue massiivi ja väljastab tingimustele vastavad elemendid.
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);
Tulemus:

let filter = raamatud.filter(raamat=>raamat.aasta > 2018);
console.log(filter);
Tulemus:

Massiivi sorteerimine
Viimase meetodina vaatame sorteerimist sort. Lihtsalt sorteerimine objektide massivii puhul õigesti ei tööta. Seepärast peame kasutama võrdlusfunktsiooni.
raamatud.sort((a, b) => a.aasta - b.aasta);
console.log(raamatud);
Tulemus:

Ülesanne
Raamatu objekt
- Loo objekt
raamat, millel on vähemalt kolm omadust:pealkiri,autor,aasta.
let raamat = {
//omadused
nimi: "IT",
autor: "Stephen King",
aasta: 1998,
lehekuljed: 356,
kirjeldus: "Spooky scary book",
2. Lisa meetod, mis kuvab raamatu kirjelduse.
let raamat = {
//omadused
nimi: "IT",
autor: "Stephen King",
aasta: 1998,
lehekuljed: 356,
kirjeldus: "Spooky scary book",
kuvaKirjeldus() {
this.kirjeldus.forEach(kirjeldus => console.log(kirjeldus));
}
};
Tulemus:

3.Lisa meetod, mis muudab väljaandmise aastat ja prindi tulemused konsooli.
let raamat = {
// omadused
nimi: "IT",
autor: "Stephen King",
aasta: 1998,
lehekuljed: 356,
kirjeldus: "Spooky scary book",
kuvaKirjeldus() {
console.log(this.kirjeldus);
},
//muudab väljaandmise aastat
muudaAasta(uusAasta) {
this.aasta = uusAasta;
console.log("Uus väljaandmise aasta on:", this.aasta);
}
};
raamat.muudaAasta(2020);
console.log(raamat);
Tulemus:

Raamatukogu
1 .Loo objekt raamatukogu, mille omaduseks on raamatud (massiiv raamatutest).
let raamatukogu = {
raamatud: [
{ pealkiri: 'IT', autor: 'Stephen King', aasta: 1998 },
{ pealkiri: 'Wonderlands', autor: 'Alex Prokazjka', aasta: 2012 },
{ pealkiri: 'Tom Sorry', autor: 'Alexandr Alblakov', aasta: 2019 }
]
};
2. Lisa meetod, mis kuvab kõik raamatud kenasti konsoolis.
let raamatukogu = {
raamatud: [
{ pealkiri: 'IT', autor: 'Stephen King', aasta: 1998 },
{ pealkiri: 'Wonderlands', autor: 'Alex Prokazjka', aasta: 2012 },
{ pealkiri: 'Tom Sorry', autor: 'Alexandr Alblakov', aasta: 2019 }
]
};
raamatukogu.raamatud.forEach((raamat) => {
console.log(`
Pealkiri: ${raamat.pealkiri},
Autor: ${raamat.autor},
Aasta: ${raamat.aasta}
`);
});
Tulemus:

3. Lisa meetod, mis lisab uue raamatu.
let raamatukogu = {
raamatud: [
{ pealkiri: 'IT', autor: 'Stephen King', aasta: 1998 },
{ pealkiri: 'Wonderlands', autor: 'Alex Prokazjka', aasta: 2012 },
{ pealkiri: 'Tom Sorry', autor: 'Alexandr Alblakov', aasta: 2019 }
],
lisaRaamat(uusRaamat) {
this.raamatud.push(uusRaamat);
},
kuvaRaamatud() {
console.log(this.raamatud);
}
};
// lisa uus raamat
raamatukogu.lisaRaamat({ pealkiri: 'Crack', autor: 'Walter Johns', aasta: 2015 });
// kuva raamatud
raamatukogu.kuvaRaamatud();
Tulemus:

4. Lisa meetod, mis kuvab raamatukogu raamatute koguarvu.
let raamatukogu = {
raamatud: [
{ pealkiri: 'IT', autor: 'Stephen King', aasta: 1998 },
{ pealkiri: 'Wonderlands', autor: 'Alex Prokazjka', aasta: 2012 },
{ pealkiri: 'Tom Sorry', autor: 'Alexandr Alblakov', aasta: 2019 }
],
lisaRaamat(uusRaamat) {
this.raamatud.push(uusRaamat);
},
kuvaRaamatud() {
console.log(this.raamatud);
},
kuvakoguarv() {
console.log("Raamatukogus on kokku", this.raamatud.length, "raamatut.");
}
};
//kuvab raamatu koguarv
raamatukogu.kuvakoguarv();
Tulemus:

5. Lisa meetod, mis arvutab, mitu raamatut on ilmunud pärast 2000. aastat.
let raamatukogu = {
raamatud: [
{ pealkiri: 'IT', autor: 'Stephen King', aasta: 1998 },
{ pealkiri: 'Wonderlands', autor: 'Alex Prokazjka', aasta: 2012 },
{ pealkiri: 'Tom Sorry', autor: 'Alexandr Alblakov', aasta: 2019 }
],
arvutaParast2000() {
let arv = this.raamatud.filter(raamat => raamat.aasta > 2000).length;
console.log("Raamatuid, mis on ilmunud pärast aastat 2000, on:", arv);
}
};
//kuvab raamatut parast 2000
raamatukogu.arvutaParast2000();

6. Koosta oma meetod ja kirjuta mida meetod tähendab
Meetod sorteerib kõik raamatud väiksemast aastast suuremani
let raamatukogu = {
raamatud: [
{ pealkiri: 'IT', autor: 'Stephen King', aasta: 1998 },
{ pealkiri: 'Wonderlands', autor: 'Alex Prokazjka', aasta: 2012 },
{ pealkiri: 'Tom Sorry', autor: 'Alexandr Alblakov', aasta: 2019 }
],
aastaSorteerimine(){
this.raamatud.sort((a, b) => a.aasta - b.aasta);
console.log(this.raamatud);
}
};
raamatukogu.aastaSorteerimine();
