嗨小二
2016-01-10 21:53
var arr=[[0,1],[2,3],[4,5]]; var i=0,j=0; var row; for(;i<arr.length;i++){ row=arr[i]; console.log(row.length); for(;j<row.length;j++){ } } 为啥console.log(row.length);输出的是2; 按道理应该直接输出3啊
arr.length才是数组arr的长度,row变量为arr对应【子数组】的元素,当i=0时,row=arr[0],数组arr的第一个元素赋值给row,并且row元素数组,row.length为arr第一个元素里的数组长度
var arr=[[0,1],[2,3],[4,5]]; var i=0,j=0; var row; for(;i<arr.length;i++){ row=arr[i]; @tag1 console.log(row.length); // j = 0; for(;j<row.length;j++){ } }
在@tag1 处的代码执行时(假设 i = 0):
row = arr[0]; // arr[0] = [0,1] row.length ==> 2
...
你的第二层循环有问题,j 没有清零, 在第二循环开始时 j 已经累加了,不是0.
JavaScript深入浅出
281100 学习 · 1020 问题
相似问题