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

איטרציה על אוספים

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

for…of עבור מערכים

זו הלולאה שתרצה להשתמש בה כמעט תמיד כדי לחזור על מערך: זה מחלץ את הערך בכל שלב.

JS
const colori = ['rosso', 'verde', 'blu'];

for (const c of colori) {
  console.log(c);
}
// 'rosso'
// 'verde'
// 'blu'

אם אתה גם צריך את האינדקס, השתמש ב-entries():

JS
for (const [i, c] of colori.entries()) {
  console.log(`${i}: ${c}`);
}
// '0: rosso', '1: verde', '2: blu'

for…in עבור חפצים - בזהירות

for…in חוזר על מפתחות (מחרוזות) של אובייקט:

JS
const utente = { nome: 'Anna', eta: 28 };
for (const k in utente) {
  console.log(`${k} = ${utente[k]}`);
}

Object.keys / values / entries

אלו הן הדרך החזקה לחזור על אובייקט. הם מחזירים מערכים, וכך הם משתלבים היטב עם for…of:

JS
const utente = { nome: 'Anna', eta: 28 };

Object.keys(utente); // ['nome', 'eta']
Object.values(utente); // ['Anna', 28]
Object.entries(utente); // [['nome', 'Anna'], ['eta', 28]]

for (const [k, v] of Object.entries(utente)) {
  console.log(`${k} → ${v}`);
}

קלאסי for

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

JS
for (let i = 0; i < colori.length; i++) {
  console.log(i, colori[i]);
}

// Backwards
for (let i = colori.length - 1; i >= 0; i--) {
  console.log(colori[i]);
}

נסה את זה

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

בהינתן `מספרים = [3, 5, 7]`, חשב את הסכום של כל האלמנטים (15) על ידי איטרציה עם for...of. הביטוי האחרון חייב להעריך את הסכום.

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

for (const n של מספרים) { sum = sum + n; }

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

סקירת התרגיל

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

בהינתן `מחירים = { mela: 0.4, תקופה: 0.55, בננה: 0.3 }`, החזר את המספר הכולל של ערכים באובייקט (3) באמצעות Object.keys.

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

Object.keys(obj) מחזיר מערך; .length אומר כמה מפתחות יש.

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