32.二維數組

一 經過循環按行順序爲5*5的二維數組,a賦值1到25的天然數,編程

二 而後輸出該數組的左下半三角形,試編程。數組

1, 2, 3, 4, 5 ]  spa

[ 6, 7, 8, 9, 10 ]code

11, 12, 13, 14, 15 ]blog

16, 17, 18, 19, 20 ]作用域

[ 21, 22, 23, 24, 25 ]it

 

let arr = [ ];
let count = 0; //.............................1
for(let i = 0; i < 5; i++){
  newarr = [];
  //let count = 0; ..........................2
  for(let j = 0; j < 5; j++ ){
    newarr.push(++count)
  }
arr.push(newarr)
}
//console.log(arr[0][0])表示打印第arr裏第0個數組的第0個值
for(let i = 0; i < arr.length; i++){
  for(let j = 0; j <=i; j++){
  document.write(arr[i][j] + '&ensp;&ensp;')
  }
document.write('<br>')
}

代碼執行流程:io

1.首先聲明一個空數組console

2.循環:class

    生成第一個數組newarr,把1~5放入newarr,再把newarr放入空數組arr(i =0 , j = 1,2,3,4,5)

       生成第二個數組newarr,把2~10放入newarr,再把newarr放入空數組arr( i =1 , j = 1,2,3,4,5 )

                (共執行5次)

 

注意let count = 0 在位置1 和 2 的區別,這裏涉及到做用域問題

在位置 1 時,

for(let j = 0; j < 5; j++ )
j = 0 時 ++count 賦值爲 1
j = 1 時 ++count 賦值爲 2
    ......
j = 4 時 ++count 賦值爲 5(也就是總體第一次循環結束,最終保留的是最後一次循環的賦值 count = 5)
因爲 let count = 0 是在循環外面,每次循環結束count獲得最終賦值並保存下來,當循環所有結束,循環內的賦值都會被釋放,也就是 count回到全局變量

在位置 2 時, let count = 0 是在循環以內,每次都是從新按代碼順序執行一遍,所以,每次都會先取count = 0 ,再進行 ++count 

相關文章
相關標籤/搜索