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

עבור ... של ועבור ... ב

ל-JavaScript יש שתי לולאות "ארגונומיות" שאין לבלבל:

  • for…of חוזר על הערכים של אוסף שניתן לחזור עליו (מערך, מחרוזת, סט, מפה...).
  • for…in חוזר על מפתחות הספורים של אובייקט.

הם בני דודים קרובים ומוחלפים בקלות - השימוש בשגוי הוא אחד הראשונים בשפה מלכודות.

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

JS
const colori = ['rosso', 'verde', 'blu'];
for (const c of colori) {
  console.log(c); // 'rosso', 'verde', 'blu'
}

for (const ch of 'abc') {
  console.log(ch); // 'a', 'b', 'c'
}

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

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

for…in עבור אובייקטים

JS
const utente = { nome: 'Anna', eta: 30, citta: 'Roma' };
for (const chiave in utente) {
  console.log(chiave, utente[chiave]); // 'nome' 'Anna', ...
}

מתי לא לבלבל אותם

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

// SBAGLIATO: stampa gli indici come stringhe!
for (const x in colori) {
  console.log(x); // '0', '1', '2'
}

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

נסה את זה

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

הגדר `concat(מילים)` שבהינתן רשימה של מחרוזות, מחזיר מחרוזת עם כולן משורשרות, מופרדות ברווח. השתמש עבור ... של.

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

להצטבר למחרוזת; הוסף את הרווח רק אם זו לא המילה הראשונה.

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

סקירת התרגיל

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

הגדר `positiveValues(obj)` שמחזיר מערך עם ערכי האובייקט שהם מספרים > 0. השתמש עבור...in. ההזמנה חייבת להתאים לסדר האיטרציה של המפתחות.

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

עשה לולאה עם for...in מעל המקשים, סינון עם typeof ו->0, לחץ לתוצאות.

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