从本书的这一章开始:http://eloquentjavascript.net/06_object.html("段落命名为一个表格") 我试图了解代码是如何工作的,今天我正在研究一个包含嵌套for的特定脚本。 所以从对象行开始:
function TextCell(text){
this.text = text.split('\n')
}
这本书显示了这个:
var rows = [];
for (var i=0; i<5;i++){
var row = [];
for (var j=0;j<5;j++){
if ((j+i)%2==0)
row.push(new TextCell("##"));
else
row.push(new TextCell(" "));
}
rows.push(row)
}
结果将是一个数组(长度为5)的数组(每个长度为5)。 每个内部数组包含5个TextCell对象(每个对象具有另一个数组(长度1),其中包含&#34; ##&#34;或&#34;&#34;
现在我需要了解嵌套的工作方式:
在这种情况下,我们有5x5操作权限吗?
So first step i=0:
we create row=[] //that is empty
start the inner for:
j=0 so i+j=0 that is an even number so we push inside row "##"
接下来会发生什么?我们仍然在内循环(所以我仍然是0和j = 1)?并且我们将以这种方式进行(我们仍然保留在内部循环中:所以i = 0且j = 1; i = 0且j = 2等,然后当j到达5时,我们传递到外部循环,因此i = 1和j = 0,i = 1且j = 1等)
我希望我能很好地解释自己,我的理由是正确的吗?提前致谢