8月になったので、しし座のプログラムを作成しました。Zodiac 0.4 として公開しました。
今回は JavaScript の配列とオブジェクトについてお伝えします。
前回のかに座では星座の情報を配列に格納していました。
var star = {};
star[17] = {name: 'β Cnc', ra: '08 16 30.95', dec: '+09 11 08.4', mag: 3.53};
単なる配列であれば、var star = []; で初期化するのですが、オブジェクトの配列なので、var star = {}; としています。配列のインデックスは数字です。フラムティード番号をインデックスとして使用しました。
今回のしし座ではフラムスティード番号が重複するため、星の名称(文字列)をインデックスにしたかったのですが、配列ではそれができません。ですが、コードは次のようになりました。
var star = {};
star['Regulus'] = {ra: '10 08 22.46', dec: '+11 58 01.9', mag: 1.36, fd: 32};
前述のかに座では「オブジェクトの配列」だったものが、今回のしし座では「オブジェクトのオブジェクト」として扱われます。配列のインデックス star[17] に対応しているのが、オブジェクトのプロパティ star[‘Regulus’] です。プロパティは star.Regulus とも表記できます。
star[‘Regulus’] という表記は連想配列を意識したものです。インデックスが数字ではなく文字列で表される配列のことです。要するに JavaScript では連想配列はオブジェクトの表記として扱えるようになっています。
したがって、今回の星座のオブジェクトを操作するコードは前回の配列を操作するコードを変更せずに使えました。
参考文献
David Flanagan, “JavaScript 第6版”, 2012, オライリー・ジャパン, pp127-128,152-153
“” への1件の返信