Salt la conținutul principal
Modulul 3 · Lecția 2 din 410/32 în curs~10 min
Lecții din modul (2/4)

Obiecte: harta cheie-valoare

Un obiect în JS este o colecție neordonată de perechi cheie → valoare. Cheile sunt șiruri de caractere (sau Symbol), valorile sunt orice: numere, șiruri de caractere, tablouri, alte obiecte, funcții. Este cea mai folosită structură de date din limba: fiecare „înregistrare” din domeniul dvs. va fi de obicei un obiect.

JS
const utente = {
  nome: 'Anna',
  eta: 28,
  attivo: true,
  ruoli: ['admin', 'editor'],
};

Proprietăți de citire: punct vs paranteză

Există două notații echivalente:

JS
utente.nome; // 'Anna'    (dot — the normal form)
utente['nome']; // 'Anna'    (bracket — equivalent)

// Brackets are MANDATORY when:
// 1) the key is not a valid identifier
const tag = { 'codice-fiscale': 'ABC123' };
tag['codice-fiscale']; // OK
// tag.codice-fiscale;      // syntax error

// 2) the key is computed (variable/expression)
const campo = 'eta';
utente[campo]; // 28

O proprietate lipsă returnează undefined, fără erori:

JS
utente.telefono; // undefined

Adăugarea, modificarea, eliminarea

JS
const u = { nome: 'Anna' };
u.eta = 28; // adds
u.nome = 'Anna B.'; // modifies
delete u.eta; // removes the property

delete este un cuvânt cheie. Se va dovedi a fi un caz de utilizare rar: majoritatea timp în care veți dori să produceți un obiect nou fără acea cheie (vom vedea asta cu răspândire).

Stenografie: chei numite ca variabila

Când numele cheii se potrivește cu numele variabilei, puteți omite duplicarea:

JS
const nome = 'Anna';
const eta = 28;

const u1 = { nome: nome, eta: eta }; // explicit form
const u2 = { nome, eta }; // shorthand, equivalent

Verificarea prezenței unei proprietăți

Trei variante, în ordinea preferințelor:

JS
'nome' in utente; // true   ← in operator
utente.nome !== undefined; // true   ← works almost always
Object.hasOwn(utente, 'nome'); // true   ← modern, safe

Încearcă

Exercițiu#js.m3.l2.e1
Încercări: 0Se încarcă…

Creați utilizatorul obiect = { nume: „Sara”, vârsta: 22 }, apoi adăugați proprietatea „activ” setată la true și returnați obiectul ca ultima expresie.

Se încarcă editorul...
Afișează indiciu

Puteți adăuga proprietăți după fapt cu notație punct.

Soluție disponibilă după 3 încercări

Exercițiu de revizuire

Exercițiu#js.m3.l2.e2
Încercări: 0Se încarcă…

Având în vedere `product = { cod: 'A1', price: 9.9 }` și șirul `key = 'price'`, returnați prețul folosind notația paranteze (ultima expresie trebuie să fie evaluată la 9.9).

Se încarcă editorul...
Afișează indiciu

Cu paranteze puteți trece o variabilă ca cheie.

Soluție disponibilă după 3 încercări