الحلقات المتداخلة مع المصفوفات ثنائية الأبعاد
جزء من قسم Logic & Flow في رحلة JavaScript على Coddy — الدرس 8 من 65.
عند العمل مع المصفوفات ثنائية الأبعاد، غالبًا ما نستخدم الحلقات المتداخلة للتكرار عبر كل صف وكل عمود، مما يسمح لنا بالوصول إلى كل عنصر في المصفوفة أو تعديله.
إليك هيكل نموذجي للحلقات المتداخلة لمصفوفة ثنائية الأبعاد:
const seats = [
[true, true, false],
[true, false, true]
];
for (let r = 0; r < seats.length; r++) {
// الحلقة الخارجية تمر عبر الصفوف
for (let c = 0; c < seats[r].length; c++) {
// الحلقة الداخلية تمر عبر الأعمدة
// يمكن الوصول إلى seats[r][c] هنا
}
}تتكرر الحلقة الخارجية عبر الصفوف، وتتكرر الحلقة الداخلية عبر أعمدة كل صف. بهذه الطريقة، يمكنك الوصول إلى كل عنصر في المصفوفة ثنائية الأبعاد باستخدام array[r][c].
التحدي
سهلأنشئ دالة باسم countOccurrences تأخذ مصفوفة ثنائية الأبعاد من السلاسل النصية matrix وسلسلة نصية target. يجب أن تعيد عدد المرات التي يظهر فيها target عبر جميع الصفوف والأعمدة.
ورقة مرجعية
استخدم الحلقات المتداخلة للتكرار عبر المصفوفات ثنائية الأبعاد - الحلقة الخارجية للصفوف والحلقة الداخلية للأعمدة:
const seats = [
[true, true, false],
[true, false, true]
];
for (let r = 0; r < seats.length; r++) {
// الحلقة الخارجية تتكرر عبر الصفوف
for (let c = 0; c < seats[r].length; c++) {
// الحلقة الداخلية تتكرر عبر الأعمدة
// الوصول إلى العنصر باستخدام seats[r][c]
}
}جرّب بنفسك
function countOccurrences(matrix, target) {
// TODO: قم بتنفيذ المنطق لحساب عدد مرات ظهور 'target' في المصفوفة
}
// لا تكتب أي شيء خارج الدالةيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1السلاسل النصية بعمق
أساسيات السلاسل النصيةالتكرار عبر السلاسل النصيةTemplate Literalsدوال السلاسل النصيةمراجعة - String Weaver2المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات5المجموعات - الجزء الأول
ما هي المجموعة؟التكرار عبر المجموعاتإضافة عنصرإزالة عنصرالتحقق من وجود عنصرالحجم وهل هي فارغةالنسخ والمسحملخص - أساسيات المجموعات8مواضيع شيقة حول الـ Arrays
تفكيك الـ Arrayاستخدام الـ Spread Syntax في الـ Arraysالـ Sparse Arraysمراجعة - ورشة عمل الـ Arrays3JSON الجزء الأول
ما هو JSON؟التحقق من وجود المفتاحObject MethodsSpread Operator الجزء الأولSpread Operator الجزء الثانيحذف المفاتيحمراجعة - معالجة مفاتيح JSON