Files
2019-06-20 16:05:02 -05:00

1.4 KiB

title, localeTitle
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);