アイストマトバズーカのゲーム制作日記

いろいろ超初心者がゲーム制作に挑戦。現在RPGツクールMZでフリーゲーム制作中。フリー素材も作って置いてます。

MENU

JavaScriptさわってみる8回目(´-ω-`) 連想配列

こんにちは。

 

今回はJavaScriptさわってみる企画8回目です。

 

ホントは予定になかったんですけど制作中ゲームでちょっとやってみたいことがありまして。それでツクールMZのコアスクリプトやJavascriptを調べてて新しいことを知ったのでメモしておこうというわけです。

 

まずは免責。

※この記事は単なる初心者の解釈です。信憑性を期待してはいけません。

 

内容はタイトルの通り、"連想配列"ってやつ。手持ちの入門書にはありませんがどうやら基礎っぽいですよ・・・(;^ω^)

 

まず配列については過去に触れたとおり

簡単にいうと変数をひとまとめにしたもので、変数を”値を入れる箱”とするならば配列は”引き出しが複数ある棚”、といったところです(私の理解では)。

 

で、その引き出しにはそれぞれに番号が割り振られているのでループなどを使って例えば番号が後半の引き出しの中身だけ〇倍にする、とか偶数番号の引き出しの中身だけ〇にする、とかまとめて処理できるのが配列の長所なんだと思います。

 

では連想配列とは。

 

配列の説明でいう引き出しに割り振られる番号っていうのは0、1,2・・・と順番に自動で割り振られるのですが、連想配列ではそれが番号ではなくて自由に文字列を使ったもののようです。引き出しに自由に名札をつけるようなもんだとイメージしてます。

 

宣言の仕方はこう↓

 

var 配列名 = {名前①:値① 名前②:値② 名前③:値④…};

 

普通の配列とよく似てて[]と{}の違いです。

でもこれって実は過去記事でも使ったことがあります…。

オブジェクトと同じですね。つまり連想配列=オブジェクトであって1つ1つはプロパティってことです。

 

なので取り出し方はプロパティ取得のように

 

配列名.名前

 

でもいいし、配列のように

 

配列名[”名前”]

 

でもよいということです。

そしてこれは実は配列のようにまとめて処理ができるっていうのが今回の収穫です!

 

for (var 変数 in 配列名 ){

  変数を使った処理

}

 

ってやると配列の全ての要素を使った処理になるそうです。

変数が 配列内に割り振った名前になるので 例えば”変数を使った処理”のところを console.log(変数) とすると結果は 名前 の表示、 console.log(配列名[変数]) とすると値が結果として表示されます。要素の数だけ繰り返すので全ての名前/値が表示されるってことになります。

 

割り振った名前が取り出せるなら便利な使い方ができそう(な気がする…)。ちなみにこの割り振った名前のことを”キー”っていうみたいです。

 

ちゃんと調べたのはここまでですがざっと見たところ様々な応用方法があるっぽいです。ツクールMZのコアスクリプトでも見かけましたし。

 

これを使ってやってみたいことを試してみます(予定)。

 

今回はここまでです。ありがとうございました。

 

ベタ塗り+1カゲ。目は先に描いちゃうタイプです。バランスなどの修正は極力この段階までに完結させたいのですがなかなか違和感の原因やアンバランスに気づけません(;´Д`)