Objekti loomine
Objekti süntaks tähendab, et objekt koosneb võtme ja väärtuse paaridest.
Võti on sõne, ja väärtus võib olla ükskõik milline andmetüüp (nt arv, sõne, massiiv, funktsioon jne).
Iga objekti omadustele saab juurde pääseda, kasutades punktisüntaksit.
let auto = {
mark: "BMW",
mudel: "i8",
aasta: 2022,
varv: "must",
lisavarustus: ["kliimaseade", "elektriaknad", "navigatsioonisüsteem"]
};
console.log(auto);
console.log(auto.mark); // Output: "Toyota"
console.log(auto.mudel); // Output: "Corolla"
console.log(auto.aasta); // Output: 2022
console.log(auto.varv); // Output: "punane"
console.log(auto.lisavarustus); // Output: ["kliimaseade", "elektriaknad", "navigatsioonisüsteem"]


Objekti meetodid ja this kasutamine
Javascripti objektid võivad sisaldada nii omadusi (andmeid) kui ka meetodeid (funktsioone).
Meetodid on lihtsalt funktsioonid, mis kuuluvad objektile ja saavad kasutada selle omadusi.
Selleks kasutatakse võtmesõna this, mis viitab samale objektile.
let telefon = {
//omadused
mark: "Apple",
mudel: "iphone 14",
aasta: 2023,
varv: "valge",
omadused: ["kaamera", "naogatuvastamine"],
//meetodid
taisnimi: function() {
return this.mark + " " + this.mudel;
}
};
console.log(telefon.taisnimi());


Meetodi lühendamine
let arvuti = {
//omadused
mark: "Apple",
mudel: "MacBook Air M3",
aasta: 2024,
varv: "hõbedane",
omadused: ["Retina ekraan", "Touch ID", "macOS Sonoma", "M3 protsessor"],
//meetodid
taisnimi2() {
return this.mark + " " + this.mudel;
},
kuvaOmadused() {
this.omadused.forEach(omadus => console.log(omadus));
}
};
arvuti.taisnimi2()
arvuti.kuvaOmadused();


Objektide massiivi loomine ja kuvamine
Objektide massiiv on nimekiri objektidest, kus iga objekti saab kätte tema indeksi järgi.
Iga objekt koosneb võtme–väärtuse paaridest, mis hoiavad andmeid (nt teksti, arve, tõeväärtusi jne).
let autod = [
{ mark: 'BMW', mudel: 'X5', aasta: 2021 },
{ mark: 'Audi', mudel: 'A6', aasta: 2018 },
{ mark: 'Mercedes-Benz', mudel: 'C-Class', aasta: 2023 }
];
console.log(autod);
console.log(autod[2]);
console.log(autod[1].mark);


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
JavaScriptis on massiivide jaoks palju kasulikke meetodeid, mida saab kasutada nii tavaliste massiivide kui ka objektide massiivide puhul.
push()– lisab elemendi lõppupop()– eemaldab viimase elemendishift()– eemaldab esimese elemendiunshift()– lisab elemendi algusesseslice()jasplice()– lõikavad või muudavad massiiviforEach(),map(),filter(),reduce(),sort()– töötlevad ja muudavad andmeid
autod.push({ mark: 'BMW', mudel: '320i', aasta: 2015 });
autod.unshift({ mark: 'Ford', mudel: 'Focus', aasta: 2020 });
console.log(autod);

Meetod splice ühaegselt kustutab ja lisab.
autod.splice(1, 0, { mark: 'Nissan', mudel: 'Qashqai', aasta: 2018 });
console.log(autod);

Massiivist otsimine
let otsing = autod.find(auto=>auto.aasta > 2020);
console.log(otsing);
let otsing2 = autod.find(auto=>auto.aasta > 2021 && auto.mark === "Mercedes-Benz");
console.log(otsing2);

Massiivi filtreerimine
let arvud = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
const filtreeritud = arvud.filter(arv => arv % 2 === 0);
console.log(filtreeritud);
let filter = autod.filter(auto=>auto.aasta > 2018);
console.log(filter);

Massiivi sorteerimine
autod.sort((a, b) => a.aasta - b.aasta);
console.log(autod);

Ülesanne
Objekt raamat – üksik raamat
Kirjeldus:
Hoidab ühe raamatu andmeid ja võimaldab neid kuvada ning muuta.
let raamat = {
pealkiri: "Spider-Man: The Amazing Fantasy #15",
autor: "Stan Lee",
aasta: 1962,
Meetodid:
kuvaKirjeldus()– kuvab raamatu info HTML-elemendis ja konsoolis
kuvaKirjeldus() {
let output1 = document.getElementById('output1');
let kir = this.pealkiri + " — " + this.autor + ", " + this.aasta;
output1.innerHTML = kir + '<br>';
console.log(kir);
}
muudaAasta(uusAasta)– muudab raamatu ilmumisaasta
muudaAasta(uusAasta) {
this.aasta = uusAasta;
let au = 'Raamatu "' + this.pealkiri + '" uus aasta: ' + this.aasta;
document.getElementById('output1').innerHTML += au + '<br>';
console.log(au);
}
Kasutus:
raamat.kuvaKirjeldus();
raamat.muudaAasta(2023);
Objekt raamatukogu – raamatute kogum
Kirjeldus:
Hoidab massiivi raamatutest ja võimaldab lisada, kuvada ja filtreerida.
let raamatukogu = {
raamatud: [
{ pealkiri: "Spider-Man: The Amazing Fantasy #15", autor: "Stan Lee", aasta: 1962 },
{ pealkiri: "Spider-Man: The Amazing Spider-Man #1", autor: "Stan Lee", aasta: 2001 },
{ pealkiri: "Spider-Man: Kraven's Last Hunt", autor: "J. M. DeMatteis", aasta: 1987 }
],
Meetodid
kuvaRaamatud()– kuvab kõik raamatud
kuvaRaamatud() {
let output = "";
this.raamatud.forEach(r => {
output += r.pealkiri + " — " + r.autor + ", " + r.aasta + "<br>";
console.log(r.pealkiri + " — " + r.autor + ", " + r.aasta);
});
document.getElementById('output').innerHTML = output;
}
kuvaKoguarv()– näitab, mitu raamatut on raamatukogus
kuvaKoguarv() {
let kogu = "Raamatukogus on " + this.raamatud.length + " raamatut";
document.getElementById('output').innerHTML += kogu + '<br>';
console.log(kogu);
}
lisaRaamat(pealkiri, autor, aasta)– lisab uue raamatu
lisaRaamat(pealkiri, autor, aasta) {
this.raamatud.push({ pealkiri, autor, aasta });
console.log(`Lisati raamat: ${pealkiri} — ${autor}, ${aasta}`);
this.kuvaRaamatud();
this.kuvaKoguarv();
}
seda me kasutame et meie andmed uueneks:
this.kuvaRaamatud(); this.kuvaKoguarv();
raamatudParast2000()– loendab raamatud pärast 2000. aastat
raamatudParast2000() {
let paras = this.raamatud.filter(r => r.aasta > 2000).length;
let prst = "Pärast 2000. aastat: " + paras + " raamatut";
document.getElementById('output').innerHTML += prst + '<br>';
console.log(prst);
}
TULEMUSED VEEBILEHEL JA KONSOOLIS



