问答详情
源自:5-2 [JavaScript]二维数组、稀疏数组

二维数组输出问题

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啊

提问者:嗨小二 2016-01-10 21:53

个回答

  • error_zhu
    2016-08-18 14:57:29

    arr.length才是数组arr的长度,row变量为arr对应【子数组】的元素,当i=0时,row=arr[0],数组arr的第一个元素赋值给row,并且row元素数组,row.length为arr第一个元素里的数组长度

  • 想的太美
    2016-01-10 23:31:52

    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.