الانتقال إلى المحتوى الرئيسي
الوحدة 3 · الدرس 4 من 412/32 في الدورة~10 min
دروس الوحدة (4/4)

التكرار على المجموعات

تعني معالجة المجموعات دائمًا التكرار: السير عبرها العناصر واحدًا تلو الآخر والقيام بشيء لكل منها. في هذا الدرس نحن انظر إلى تركيب الجمل الأساسية؛ في وحدة المصفوفات الوظيفية (الخريطة / تصفية / تقليل) سنتعلم كتابتها بشكل أكثر تصريحًا.

for…of للمصفوفات

إنها الحلقة التي سترغب في استخدامها دائمًا تقريبًا لتكرار المصفوفة: it يستخرج القيمة في كل خطوة.

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}`);
}

كلاسيكي محمي_INLINE_12

"المدرسة القديمة" 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 of number) { sum = sum + n; }

الحل متاح بعد 3 من المحاولات

تمرين المراجعة

تمرين#js.m3.l4.e2
المحاولات: 0جارٍ التحميل…

بالنظر إلى `prices = { mela: 0.4, pera: 0.55,banana: 0.3 }`، قم بإرجاع إجمالي عدد الإدخالات في الكائن (3) باستخدام Object.keys.

جارٍ تحميل المحرر…
إظهار التلميح

Object.keys(obj) يُرجع مصفوفة؛ .length يخبرك بعدد المفاتيح الموجودة.

الحل متاح بعد 3 من المحاولات