الوحدة 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(words)` الذي، في حالة وجود قائمة من السلاسل، يُرجع سلسلة جميعها متسلسلة، مفصولة بمسافة. استخدام ل... من.
جارٍ تحميل المحرر…
إظهار التلميح
تتراكم في سلسلة. أضف المسافة فقط إذا لم تكن الكلمة الأولى.
الحل متاح بعد 3 من المحاولات
تمرين المراجعة
تمرين#js.m5.l2.e2
المحاولات: 0جارٍ التحميل…
حدد `positiveValues(obj)` الذي يُرجع مصفوفة بقيم الكائن التي تكون أرقام > 0. استخدم لـ...in. يجب أن يتطابق الترتيب مع ترتيب تكرار المفاتيح.
جارٍ تحميل المحرر…
إظهار التلميح
قم بالتكرار باستخدام for...in فوق المفاتيح، ثم قم بالتصفية باستخدام typeof و> 0، ثم ادفع إلى النتائج.
الحل متاح بعد 3 من المحاولات