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

1.4 KiB

title localeTitle
Use Caution When Reinitializing Variables Inside a Loop استخدام الحذر عند 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); `