Sobes.tech
Junior

Millised andmestruktuurid on JavaScriptis olemas?

sobes.tech AI

Vastus AI-lt

Lihtsad andmetüübid: String (ridad), Number (arvud), BigInt (suured täisarvud), Boolean (loogiline tüüp), Undefined (määratlemata väärtus), Symbol (sümbolid), Null (tühi väärtus).

Keerukad andmestruktuurid:

  • Object (objekt): võtme-väärtuse paaride kogum.
    // Lihtne objekt
    const user = {
      name: 'Ivan',
      age: 30
    };
    
  • Array (massiv): elementide järjepidev kogum.
    // Numbrite massiiv
    const numbers = [1, 2, 3, 4, 5];
    
  • Map (kaart): võtme-väärtuse paaride kogum, kus võtmed võivad olla mis tahes tüüpi andmed ning säilitavad sisestamise järjekorra.
    // Erinevat tüüpi võtmed
    const map = new Map();
    map.set('name', 'Petr');
    map.set(1, 'number');
    
  • Set (kogum): unikaalsete väärtuste kogum mis tahes tüüpi.
    // Unikaalsete numbrite kogum
    const set = new Set([1, 2, 2, 3, 4, 4]); // Sisaldab [1, 2, 3, 4]
    
  • Typed Arrays (tüübitud massiivid): fikseeritud pikkusega massiivid, mille elemendid on määratletud numbriline tüüp (näiteks Int8Array, Uint8Array, Float32Array).
    // Tüübitud baitide massiiv
    const byteArray = new Uint8Array([10, 20, 30]);
    
  • WeakMap (nõrk kaart): sarnane Map-iga, kuid selle võtmed peavad olema objektid ning need ei takista kogujat eemaldamast seotud objekte.
    // Nõrk kaart
    const weakMap = new WeakMap();
    const obj1 = {};
    weakMap.set(obj1, 'andmed 1');
    
  • WeakSet (nõrk kogum): sarnane Set-iga, kuid selle elemendid peavad olema objektid ning need ei takista kogujat eemaldamast neid.
    // Nõrk kogum
    const weakSet = new WeakSet();
    const obj2 = {};
    weakSet.add(obj2);
    

Samuti on olemas struktuure, mida kasutatakse madala taseme API-ides või mis esindavad spetsiaalseid objekte:

  • ArrayBuffer: esindab universaalset, fikseeritud pikkusega binaarset pufferit.
  • DataView: pakub madala taseme liidest ArrayBuffer-is arvandmete lugemiseks ja kirjutamiseks, võimaldades kontrollida nihkeid ja baitide järjekorda.