JS的for循环嵌套如何理解啊!?头都挠破了!!!

JavaScript011

JS的for循环嵌套如何理解啊!?头都挠破了!!!,第1张

哈哈哈。你知道Excel表格吗?Excel表格中行和列知道吗?行用数字表示,列用字母表示。

如下

双for循环外层就是控制1-6的行,里面的for循环就是控制每行中的A-H。而每个单元格应该是个平面坐标系统,比如说 (1,A)就表示图中当前选中的第一个单元格,那么 (6,H)就表示右下角最后一个单元格。以上一共有6行*8列单元格。用js程序表示如下:

for(var row =0row<6row++){

   for(var col=0col<8col++){

      // 此处就可以拿到单元格。

      console.log(row,col)

   }

}

你这两行代码是在lis[i].onmouseover这个事件过程中的,也就是说它们并不是在for循环中直接执行的,而是在鼠标划过对应的li时才执行的,这个时候for循环早就运行完毕了,那么lis[i].className="select"中的这个i跟for循环的i就不存在关系了(即使有关系,它也是个固定值了,即lis.length,也就是for的循环终值)。这种情况下只能在对事件过程初始化的时候把i通过对象属性(lis[i].id)传递到事件过程内。

var txt, txt1,

    ds = [1, 2, 3, 4, 5], ds1 = [4, 5, 6, 7]

for (var i = 0, length = ds.length i < length i++) {

    txt = '我是第一重for,值为:' + ds[i]

    for (var j = 0, length = ds1.length j < length j++) {

        txt1 = '我是第二重for,值为:' + ds1[j]

        console.log(txt + ' ---- ' + txt1)

    }

}

不然把你意思再详细点?