我将一些JavaScript移植到Java中,并且我很难理解以下代码中的两行:
var blocks=[];
for (var z=0; z<size; z++) {
var slice=blocks[z]=[]; //Those are the lines I don't understand.
for (var x=0; x<size; x++) {
var row=slice[x]=[]; //Those are the lines I don't understand.
for (var y=0; y<size; y++) {
row[y]=isFull(x,y,z);
}
}
}
第一行是声明&#34; slice&#34;,然后它分配&#34; blocks [z]&#34;,然后再分配一个空数组。
在我写这篇文章时,我想到的可能是在分配新数据之前清除任何先前的信息,但我不确定。
答案 0 :(得分:1)
实际上为blocks[z]
分配了一个空数组,然后将blocks[z]
(空数组)的值分配给slice
。
基本上,这只是为两个(或更多)变量赋值的简短方法
答案 1 :(得分:1)
是和否,它会清除以前的数据,但这就是var
正在做的事情。
重要的是它分配一个数组,以便以下几行不会崩溃
blocks =[]; // blocks is an array of zero length 'filled' with NULL values;
var slice = blocks[z]; // slize would be the same as blocks[z] so it'd be NULL
blocks[z] = []; // blocks[z] is now an zero length array filled with NULL values.
所有作业代码都是从右到左执行的,因此它首先将一个数组分配给blocks[z]
并将该数组分配给var slice
等等
答案 2 :(得分:0)
x = y = z;
完全等同于:
y = z;
x = y;
按顺序。