第6.3回: 辞書と配列混合、100本ノック
第6.3回は、辞書と配列を混ぜたもの、100本ノックです。 これであなたもjsonマスター(になるとイイナ!)。
解き方などは第6.2回までと同じなので、そちらを見てください。
ヒント
最後の方はかなり難しいと思います(出来なくても問題無いレベルかも…)。 一応ヒントなどを。
まず、難しい問題の前にはそれのヒントになる問題を並べてあるつもりです。難しい問題に当たった時は、その前の数問をなんで私が設置したかを考えると良いかも。
また、長い物は自分で改行を入れる方が良いと思います。 例えば以下のような出題分があったら
var hairetu = [{"id":1,"itemType":1,"value":20,"description":"これは体力が20回復します。"},{"id":2,"itemType":1,"value":80,"description":"これは体力が80回復します。"},{"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"},{"id":4,"itemType":2,"value":25,"description":"これは攻撃力が25の武器です。"}];
以下のように、改行を入れてから考えます。
var hairetu = [{"id":1,"itemType":1,"value":20,"description":"これは体力が20回復します。"},
{"id":2,"itemType":1,"value":80,"description":"これは体力が80回復します。"},
{"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"},
{"id":4,"itemType":2,"value":25,"description":"これは攻撃力が25の武器です。"}];
原則としては「一番外側」の配列とか辞書の区切りで改行を入れます。 現時点では意味が分からなくても、これらの問題に当たる所まで行ったら意味が分かるようになっていると思いますので、 難しい問題まで行った時に自分で考えてみてください。
解く時は、自分が分かりやすい所に好きに改行を入れてOKです。別に上の原則通りじゃなくても構いません。
では行ってみましょう!
100本ノック、スタート!
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
るーしー | 15014 |
ダニエル | 12518 |
1
var kotae = 0;
以下の配列を生成せよ
結果:
- "あじゃ"
- "るーしー"
- "ダニエル"
1
1
var kotae = 0;
以下の配列を生成せよ
結果:
- "むぇーーー"
- "コケー"
- "ダネーー"
1
1
var kotae = 0;
「"コケー"」 を取り出せ
結果:
x
1
var hairetu = ["むぇーーー","コケー","ダネーー"];
2
3
var kotae = 0;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
犬 | "わんわん" |
猫 | "にゃーん" |
おっさん | "にゃーん" |
あじゃ | "むえぇーー" |
1
1
var kotae = 0;
以下の配列を生成せよ
結果:
- "こちんこちん"
- "ぬっくぬく"
- "しゅるしゅる"
1
1
var kotae = 0;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
雲鯖 | "あじゃ" |
jp鯖 | "にぎゃーら" |
1
1
var kotae = 0;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
トロツキ | 56125 |
あじゃ | 38726 |
ののくぼ | 7442 |
1
1
var kotae = 0;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
雲鯖 | ["あじゃ","るーしー","ダニエル"] |
jp鯖 | "にぎゃーら" |
1
1
var kotae = 0;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
あじゃ | ["むぇーー","コケー"] |
るーしー | "しゅるしゅるする" |
1
1
var kotae = 0;
以下の配列を生成せよ
結果:
- "むぇーー"
- "コケー"
- "ダネーー"
1
1
var kotae = 0;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
ダニエル | "ダネーー" |
あじゃ | "むえぇーー" |
1
1
var kotae = 0;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
ダニエル | "ダネーー" |
あじゃ | ["むぇーー","コケー"] |
1
1
var kotae = 0;
以下の配列を生成せよ
結果:
- "こちんこちん"
- "ぬっくぬく"
- "しゅるしゅるする"
1
1
var kotae = 0;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
あじゃ | "むえぇーー" |
るーしー | "しゅるしゅるする" |
1
1
var kotae = 0;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
あじゃ | "むえぇーー" |
るーしー | ["こちんこちん","ぬっくぬく","しゅるしゅるする"] |
1
1
var kotae = 0;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
あじゃ | ["むぇーー","コケー"] |
るーしー | "しゅるしゅるする" |
1
1
var kotae = 0;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
あじゃ | ["むぇーー","コケー"] |
るーしー | ["こちんこちん","ぬっくぬく","しゅるしゅるする"] |
1
1
var kotae = 0;
「"ダネーー"」 を取り出せ
結果:
3
1
var jisyo = {"ダニエル":"ダネーー","あじゃ":"むえぇーー"};
2
3
var kotae = 0;
「"むえぇーー"」 を取り出せ
結果:
3
1
var jisyo = {"ダニエル":"ダネーー","あじゃ":"むえぇーー"};
2
3
var kotae = 0;
「["むぇーー","コケー"]」 を取り出せ
結果:
3
1
var jisyo = {"ダニエル":"ダネーー","あじゃ":["むぇーー","コケー"]};
2
3
var kotae = 0;
「"コケー"」 を取り出せ
結果:
3
1
var hairetu = ["むぇーー","コケー"];
2
3
var kotae = 0;
「"むぇーー"」 を取り出せ
結果:
3
1
var hairetu = ["むぇーー","コケー"];
2
3
var kotae = 0;
「"むぇーー"」 を取り出せ
結果:
3
1
var jisyo = {"ダニエル":"ダネーー","あじゃ":["むぇーー","コケー"]};
2
3
var kotae = 0;
以下の要素を置き換えろ
結果:
もとの要素 | 新しい要素 |
---|---|
"むぇーー" | "いくよ!いくよ!" |
8
1
var jisyo = {"ダニエル":"ダネーー","あじゃ":["むぇーー","コケー"]};
2
3
// 以下の行を書き換えてください。
4
jisyo[0] = 0;
5
6
7
// ここはいじらないで!
8
var kotae = jisyo;
「"コケー"」 を取り出せ
結果:
3
1
var jisyo = {"ダニエル":"ダネーー","あじゃ":["むぇーー","コケー"]};
2
3
var kotae = 0;
「"ぬっくぬく"」 を取り出せ
結果:
3
1
var jisyo = {"あじゃ":["むぇーー","コケー"],"るーしー":["こちんこちん","ぬっくぬく","しゅるしゅるする"]};
2
3
var kotae = 0;
「"コケー"」 を取り出せ
結果:
3
1
var jisyo = {"あじゃ":["むぇーー","コケー"],"るーしー":["こちんこちん","ぬっくぬく","しゅるしゅるする"]};
2
3
var kotae = 0;
「"しゅるしゅるする"」 を取り出せ
結果:
3
1
var jisyo = {"あじゃ":["むぇーー","コケー"],"るーしー":["こちんこちん","ぬっくぬく","しゅるしゅるする"]};
2
3
var kotae = 0;
「"しゅるしゅるする"」 を取り出せ
結果:
3
1
var jisyo = {"あじゃ":["むぇーー","コケー"],"るーしー":["こちんこちん","ぬっくぬく","しゅるしゅるする"]};
2
3
var kotae = 0;
「"むぇーー"」 を取り出せ
結果:
3
1
var jisyo = {"あじゃ":["むぇーー","コケー"],"るーしー":["こちんこちん","ぬっくぬく","しゅるしゅるする"]};
2
3
var kotae = 0;
「"こーしー"」 を取り出せ
結果:
3
1
var jisyo = {"あじゃ":["むぇーー","コケー"],"るーしー":["こちんこちん","ぬっくぬく","こーしー","しゅるしゅるする"]};
2
3
var kotae = 0;
以下の要素を置き換えろ
結果:
もとの要素 | 新しい要素 |
---|---|
"こーしー" | "麦茶" |
8
1
var jisyo = {"あじゃ":["むぇーー","コケー"],"るーしー":["こちんこちん","ぬっくぬく","こーしー","しゅるしゅるする"]};
2
3
// 以下の行を書き換えてください。
4
jisyo[0] = 0;
5
6
7
// ここはいじらないで!
8
var kotae = jisyo;
以下の要素を置き換えろ
結果:
もとの要素 | 新しい要素 |
---|---|
"コケー" | "にゃーん" |
8
1
var jisyo = {"あじゃ":["むぇーー","コケー"],"るーしー":["こちんこちん","ぬっくぬく","こーしー","しゅるしゅるする"]};
2
3
// 以下の行を書き換えてください。
4
jisyo[0] = 0;
5
6
7
// ここはいじらないで!
8
var kotae = jisyo;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
無職 | ["えいら","たかし","karino2012"] |
労働者 | ["にゃご","みぞし"] |
1
1
var kotae = 0;
「["えいら","たかし","karino2012"]」 を取り出せ
結果:
3
1
var jisyo = {"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]};
2
3
var kotae = 0;
「"karino2012"」 を取り出せ
結果:
3
1
var hairetu = ["えいら","たかし","karino2012"];
2
3
var kotae = 0;
「"karino2012"」 を取り出せ
結果:
3
1
var jisyo = {"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]};
2
3
var kotae = 0;
「"えいら"」 を取り出せ
結果:
3
1
var jisyo = {"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]};
2
3
var kotae = 0;
「"にゃご"」 を取り出せ
結果:
3
1
var jisyo = {"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]};
2
3
var kotae = 0;
以下の要素を置き換えろ
結果:
もとの要素 | 新しい要素 |
---|---|
"にゃご" | "じゃがしま" |
8
1
var jisyo = {"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]};
2
3
// 以下の行を書き換えてください。
4
jisyo[0] = 0;
5
6
7
// ここはいじらないで!
8
var kotae = jisyo;
以下の要素を置き換えろ
結果:
もとの要素 | 新しい要素 |
---|---|
"たかし" | "キムラ" |
8
1
var jisyo = {"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]};
2
3
// 以下の行を書き換えてください。
4
jisyo[0] = 0;
5
6
7
// ここはいじらないで!
8
var kotae = jisyo;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
雲鯖 | ["あじゃ","るーしー","ダニエル"] |
jp鯖 | "にぎゃーら" |
1
1
var kotae = 0;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
雲鯖 | {"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]} |
jp鯖 | "にぎゃーら" |
1
1
var kotae = 0;
「"にぎゃーら"」 を取り出せ
結果:
3
1
var jisyo = {"雲鯖":{"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]},"jp鯖":"にぎゃーら"};
2
3
var kotae = 0;
「{"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]}」 を取り出せ
結果:
3
1
var jisyo = {"雲鯖":{"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]},"jp鯖":"にぎゃーら"};
2
3
var kotae = 0;
「["えいら","たかし","karino2012"]」 を取り出せ
結果:
3
1
var jisyo = {"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]};
2
3
var kotae = 0;
「["えいら","たかし","karino2012"]」 を取り出せ
結果:
3
1
var jisyo = {"雲鯖":{"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]},"jp鯖":"にぎゃーら"};
2
3
var kotae = 0;
「"たかし"」 を取り出せ
結果:
3
1
var hairetu = ["えいら","たかし","karino2012"];
2
3
var kotae = 0;
「"karino2012"」 を取り出せ
結果:
3
1
var hairetu = ["えいら","たかし","karino2012"];
2
3
var kotae = 0;
「"karino2012"」 を取り出せ
結果:
3
1
var jisyo = {"雲鯖":{"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]},"jp鯖":"にぎゃーら"};
2
3
var kotae = 0;
「"えいら"」 を取り出せ
結果:
3
1
var jisyo = {"雲鯖":{"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]},"jp鯖":"にぎゃーら"};
2
3
var kotae = 0;
「"にゃご"」 を取り出せ
結果:
3
1
var jisyo = {"雲鯖":{"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]},"jp鯖":"にぎゃーら"};
2
3
var kotae = 0;
「"にゃご"」 を取り出せ
結果:
3
1
var hairetu = ["みぞし","にゃご"];
2
3
var kotae = 0;
以下の要素を置き換えろ
結果:
もとの要素 | 新しい要素 |
---|---|
"にゃご" | "キムラ" |
8
1
var hairetu = ["みぞし","にゃご"];
2
3
// 以下の行を書き換えてください。
4
hairetu[0] = 0;
5
6
7
// ここはいじらないで!
8
var kotae = hairetu;
以下の要素を置き換えろ
結果:
もとの要素 | 新しい要素 |
---|---|
"にゃご" | "キムラ" |
8
1
var jisyo = {"雲鯖":{"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]},"jp鯖":"にぎゃーら"};
2
3
// 以下の行を書き換えてください。
4
jisyo[0] = 0;
5
6
7
// ここはいじらないで!
8
var kotae = jisyo;
以下の要素を置き換えろ
結果:
もとの要素 | 新しい要素 |
---|---|
"みぞし" | "キムラ" |
8
1
var jisyo = {"雲鯖":{"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]},"jp鯖":"にぎゃーら"};
2
3
// 以下の行を書き換えてください。
4
jisyo[0] = 0;
5
6
7
// ここはいじらないで!
8
var kotae = jisyo;
以下の要素を置き換えろ
結果:
もとの要素 | 新しい要素 |
---|---|
"たかし" | "あかさ" |
8
1
var jisyo = {"雲鯖":{"無職":["えいら","たかし","karino2012"],"労働者":["にゃご","みぞし"]},"jp鯖":"にぎゃーら"};
2
3
// 以下の行を書き換えてください。
4
jisyo[0] = 0;
5
6
7
// ここはいじらないで!
8
var kotae = jisyo;
「3」 を取り出せ
結果:
3
1
var jisyo = {"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"};
2
3
var kotae = 0;
「{"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"}」 を取り出せ
結果:
3
1
var hairetu = [{"id":1,"itemType":1,"value":20,"description":"これは体力が20回復します。"},{"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"}];
2
3
var kotae = 0;
「3」 を取り出せ
結果:
3
1
var hairetu = [{"id":1,"itemType":1,"value":20,"description":"これは体力が20回復します。"},{"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"}];
2
3
var kotae = 0;
「"これは攻撃力が10の武器です。"」 を取り出せ
結果:
3
1
var jisyo = {"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"};
2
3
var kotae = 0;
「"これは攻撃力が25の武器です。"」 を取り出せ
結果:
3
1
var hairetu = [{"id":1,"itemType":1,"value":20,"description":"これは体力が20回復します。"},{"id":2,"itemType":1,"value":80,"description":"これは体力が80回復します。"},{"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"},{"id":4,"itemType":2,"value":25,"description":"これは攻撃力が25の武器です。"}];
2
3
var kotae = 0;
「"これは体力が20回復します。"」 を取り出せ
結果:
3
1
var hairetu = [{"id":1,"itemType":1,"value":20,"description":"これは体力が20回復します。"},{"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"}];
2
3
var kotae = 0;
「20」 を取り出せ
結果:
3
1
var hairetu = [{"id":1,"itemType":1,"value":20,"description":"これは体力が20回復します。"},{"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"}];
2
3
var kotae = 0;
「"これは攻撃力が10の武器です。"」 を取り出せ
結果:
3
1
var hairetu = [{"id":1,"itemType":1,"value":20,"description":"これは体力が20回復します。"},{"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"}];
2
3
var kotae = 0;
以下の要素を置き換えろ
結果:
もとの要素 | 新しい要素 |
---|---|
"これは攻撃力が10の武器です。" | "むぇーー" |
8
1
var hairetu = [{"id":1,"itemType":1,"value":20,"description":"これは体力が20回復します。"},{"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"}];
2
3
// 以下の行を書き換えてください。
4
hairetu[0] = 0;
5
6
7
// ここはいじらないで!
8
var kotae = hairetu;
以下の要素を置き換えろ
結果:
もとの要素 | 新しい要素 |
---|---|
20 | 9999 |
8
1
var hairetu = [{"id":1,"itemType":1,"value":20,"description":"これは体力が20回復します。"},{"id":3,"itemType":2,"value":10,"description":"これは攻撃力が10の武器です。"}];
2
3
// 以下の行を書き換えてください。
4
hairetu[0] = 0;
5
6
7
// ここはいじらないで!
8
var kotae = hairetu;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
name | "あじゃ" |
nakigoe | "むぇーー" |
1
1
var kotae = 0;
以下の配列を生成せよ
結果:
- "あじゃ"
- "るーしー"
- "ダニエル"
1
1
var kotae = 0;
以下の配列を生成せよ
結果:
- {"name":"あじゃ","nakigoe":"むぇーー"}
- "るーしー"
- "ダニエル"
1
1
var kotae = 0;
以下の辞書を生成せよ
結果:
キー | 要素 |
---|---|
雲鯖 | [{"name":"あじゃ","nakigoe":"むぇーー"},"るーしー","ダニエル"] |
jp鯖 | "にぎゃーら" |
1
1
var kotae = 0;
「"るーしー"」 を取り出せ
結果:
3
1
var jisyo = {"雲鯖":[{"name":"あじゃ","nakigoe":"むぇーー"},"るーしー","ダニエル"],"jp鯖":"にぎゃーら"};
2
3
var kotae = 0;
「"にぎゃーら"」 を取り出せ
結果:
3
1
var jisyo = {"雲鯖":[{"name":"あじゃ","nakigoe":"むぇーー"},"るーしー","ダニエル"],"jp鯖":"にぎゃーら"};
2
3
var kotae = 0;
「"むぇーー"」 を取り出せ
結果:
3
1
var jisyo = {"雲鯖":[{"name":"あじゃ","nakigoe":"むぇーー"},"るーしー","ダニエル"],"jp鯖":"にぎゃーら"};
2
3
var kotae = 0;
「"あじゃ"」 を取り出せ
結果:
3
1
var jisyo = {"雲鯖":[{"name":"あじゃ","nakigoe":"むぇーー"},"るーしー","ダニエル"],"jp鯖":"にぎゃーら"};
2
3
var kotae = 0;
ここまで終えた後に、第六回を読み直すと、ずっと良く分かると思うので、気力が残っていたらどうぞ。
(最後の方の奴が解けるなら、理屈なんて理解しててもしてなくても困らないですけどね。特に最後二問はちゃんと理解してても難しいレベルなので)