アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記は何をしているのでしょうか?
var ary = [];
for( var k = 0; k <= 5; k++ ) {
ary[k] = [];
ary[k][0] = k;
}
for( var k = 0; k <= 3; k++ ) {
ary[0][k] = k;
}


配列を作成して、値を挿入?
[
[],
[],
[],
[],
[],
[]
]

A 回答 (2件)

> 配列を作成して、値を挿入?



これで良いと思います。
内容を表示してみれば、わかりやすいかもしれません。
-------------------------------------------
var ary = [];
for( var k = 0; k <= 5; k++ ) {
ary[k] = [];
ary[k][0] = k;
}
for( var k = 0; k <= 3; k++ ) {
ary[0][k] = k;
}


document.write("   ary[][0] [][1] [][2] [][3]<BR>");
for(var i = 0; i <= 5; i++){
document.write("ary[" + i + "][] ");
for(var j = 0; j <= 3; j++){
var s;
if(ary[i][j])
s = " " + ary[i][j] + " ";
else
if(ary[i][j] == 0)
s = " " + ary[i][j] + " ";
else
s = " u ";
document.writeln(s);
}
document.write("<BR>");
}
document.write("<BR>");
document.write("   u : undefined<BR>");
var ary = [];
for( var k = 0; k <= 5; k++ ) {
ary[k] = [];
ary[k][0] = k;
}
for( var k = 0; k <= 3; k++ ) {
ary[0][k] = k;
}

// 表示
document.write("   ary[][0] [][1] [][2] [][3]<BR>");
for(var i = 0; i <= 5; i++){
document.write("ary[" + i + "][] ");
for(var j = 0; j <= 3; j++){
var s;
if(ary[i][j])
s = " " + ary[i][j] + " ";
else
if(ary[i][j] == 0)
s = " " + ary[i][j] + " ";
else
s = " u ";
document.writeln(s);
}
document.write("<BR>");
}
document.write("<BR>");
document.write("   u : undefined<BR>");
var ary = [];
for( var k = 0; k <= 5; k++ ) {
ary[k] = [];
ary[k][0] = k;
}
for( var k = 0; k <= 3; k++ ) {
ary[0][k] = k;
}


document.write("   ary[][0] [][1] [][2] [][3]<BR>");
for(var i = 0; i <= 5; i++){
document.write("ary[" + i + "][] ");
for(var j = 0; j <= 3; j++){
var s;
if(ary[i][j])
s = " " + ary[i][j] + " ";
else
if(ary[i][j] == 0)
s = " " + ary[i][j] + " ";
else
s = " u ";
document.writeln(s);
}
document.write("<BR>");
}
document.write("<BR>");
document.write("   u : undefined<BR>");

-------------------------------------------

   ary[][0] [][1] [][2] [][3]
ary[0][]  0   1   2   3 
ary[1][]  1   u   u   u 
ary[2][]  2   u   u   u 
ary[3][]  3   u   u   u 
ary[4][]  4   u   u   u 
ary[5][]  5   u   u   u 

   u : undefined
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

結果が見やすいですね。
大変参考になりましたー

お礼日時:2015/12/29 10:12

すでに回答が出ていますが・・・



6×4の配列で一部に初期値(?)を設定しているようです。
サンプルでは添字を全てkで行っていますが、少しだけ分かり易くなるかもとi、jにして書き直してみます。
2次元配列をary[i, j]として(javascriptの表記ではary[i][j]となりますが)考えてみると・・・


//配列を定義(最初は1次元)
var ary = [];

//行に関してループ(0~5)
for( var i = 0; i <= 5; i++ ) {
//配列の要素(行)を配列として定義(これで二次元になる)
 ary[i] = [];
//初期値として、ary[i, 0](=1列目の各行要素)にiを代入
 ary[i][0] = i;
}

//列に関してループ(0~3)
for( var j = 0; j <= 3; j++ ) {
//初期値として、ary[0, j](=1行目の各列要素)にjを代入
 ary[0][j] = j;
}

console.log(ary);


これを実行してみると、コンソールへの出力は
[
[0, 1, 2, 3],
[1],
[2],
[3],
[4],
[5]
]
となります。

概念としては6×4の配列ですが、javascriptでは未定義の配列要素は生成されません。
(参照した場合は、未定義なのでundefinedが返されます)
    • good
    • 0
この回答へのお礼

補足ありがとうございました。

過程の処理内容も理解したかったので、
大変参考になりましたー

お礼日時:2015/12/29 10:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!