freeCodeCamp/guide/arabic/certifications/javascript-algorithms-and-d.../debugging/use-caution-when-reinitiali.../index.md

47 lines
1.4 KiB
Markdown
Raw Normal View History

---
title: Use Caution When Reinitializing Variables Inside a Loop
localeTitle: استخدام الحذر عند Reinitializing متغيرات داخل حلقة
---
## استخدام الحذر عند Reinitializing متغيرات داخل حلقة
* يجب حل هذا التحدي من خلال إعادة تعريف نطاق `row[]` .
* فيما يلي مثال على المصفوفة المطلوبة.
`[
[0][0],
[0][0],
[0][0]
]
`
* ومع ذلك ، فإن المصفوفة الحالية - الموضحة أدناه - بعيدة عن المصفوفة المرغوبة
`[
[0][0][0][0][0][0],
[0][0][0][0][0][0],
[0][0][0][0][0][0]
]
`
* يحدث هذا الخطأ بسبب `row[]` صف يتم الإعلان عنه كمتغير عمومي خارج الحلقة المتداخلة.
* ومع ذلك ، لملء المصفوفة بشكل صحيح يجب إعادة تعيين `row[]` بعد كل تكرار للحلقة الخارجية.
## حل
`function zeroArray(m, n) {
let newArray = [];
for (let i = 0; i < m; i++) {
let row = []; /* <----- row has been declared inside the outer loop.
Now a new row will be initialised during each iteration of the outer loop allowing
for the desired matrix. */
for (let j = 0; j < n; j++) {
row.push(0);
}
newArray.push(row);
}
return newArray;
}
let matrix = zeroArray(3, 2);
console.log(matrix);
`