2048
登录
没  有  难  学  的  前  端
登 录
×
<返回上一级

32.二维数组

javascript作者:木木

一 通过循环按行顺序为5*5的二维数组,a赋值1到25的自然数,

二 然后输出该数组的左下半三角形,试编程。

1, 2, 3, 4, 5 ]  

[ 6, 7, 8, 9, 10 ]

11, 12, 13, 14, 15 ]

16, 17, 18, 19, 20 ]

[ 21, 22, 23, 24, 25 ]

 

let arr = [ ];
let count = 0; //.............................1
for(let i = 0; i < 5; i++){
  newarr = [];
  //var 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(var i = 0; i < arr.length; i++){
  for(var j = 0; j <=i; j++){
  document.write(arr[i][j] + '&ensp;&ensp;')
  }
document.write('<br>')
}

代码执行流程:

1.首先声明一个空数组

2.循环:

    生成第一个数组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次)

 

注意var 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) 由于var count = 0 是在循环外面,每次循环结束count得到最终赋值并保存下来,

在位置 2 时, var count = 0 是在循环之内,每次都是重新按代码顺序执行一遍,因此,每次都会先取count = 0 ,再进行 ++count 

 
本文来源于网络:查看 >
« 上一篇:js做一个简单的类似vue的斗篷来解决内容未加载全闪一下的问题
» 下一篇:自动生成下载二维码到本地,然后调用微信扫一扫功能
评论
点击刷新
评论
相关博文
×添加代码片段