דילוג לתוכן המרכזי
מודול 3 · שיעור 2 מתוך 410/32 בקורס~10 min
שיעורי מודול (2/4)

אובייקטים: מפת מפתח-ערך

אובייקט ב-JS הוא אוסף לא מסודר של זוגות מפתח → ערך. המקשים הם מחרוזות (או Symbol), ערכים הם כל דבר: מספרים, מחרוזות, מערכים, אובייקטים אחרים, פונקציות. זהו מבנה הנתונים הנפוץ ביותר ב- שפה: כל "רשומה" בדומיין שלך תהיה בדרך כלל אובייקט.

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

מאפייני קריאה: נקודה מול סוגר

ישנם שני סימונים מקבילים:

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

מאפיין חסר מחזיר את undefined, ללא שגיאות:

JS
utente.telefono; // undefined

הוספה, שינוי, הסרה

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

delete היא מילת מפתח. זה יתברר כמקרה שימוש נדיר: רוב פעם תרצה לייצר אובייקט חדש ללא המפתח הזה (אנחנו נראה את זה עם ממרח).

קיצור: מקשים המכונים כמו המשתנה

כאשר שם המפתח תואם לשם המשתנה, ניתן להשמיט את הכפילות:

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

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

בדיקת קיומו של נכס

שלוש אפשרויות, לפי סדר העדפה:

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

נסה את זה

פעילות גופנית#js.m3.l2.e1
ניסיונות: 0טוען...

צור את האובייקט משתמש = { שם: 'שרה', גיל: 22 }, ולאחר מכן הוסף את המאפיין 'פעיל' ל-true והחזר את האובייקט כביטוי האחרון.

טוען עורך...
הצג רמז

אתה יכול להוסיף מאפיינים לאחר מעשה עם סימון נקודות.

הפתרון זמין לאחר 3 ניסיונות

סקירת התרגיל

פעילות גופנית#js.m3.l2.e2
ניסיונות: 0טוען...

בהינתן `product = { code: 'A1', price: 9.9 }` והמחרוזת `key = 'price'`, החזר את המחיר באמצעות סימון סוגריים (הביטוי האחרון חייב להיות 9.9).

טוען עורך...
הצג רמז

בעזרת סוגריים ניתן להעביר משתנה כמפתח.

הפתרון זמין לאחר 3 ניסיונות