Photo by Ilya Pavlov

宣言

var a = []

と書けばいい模様。詳しくはnew Arrayとかもあるらしいが、簡単なのはこれ。最初に初期の長さを決めておきたい場合はnew Arrayらしいが、後述する通りJavaScriptの配列はほぼリスト扱いなのでこの辺アバウトでOK。

JavaScriptにおける配列の性質

 配列というよりはPUSH、POPもあるので、どう考えても可変かつリストに近い。特に宣言しなくても入れたい箇所に値を代入できそうな様子。つまりは、多分ArrayBoundOfException?だったか、そういうものは起きないようだ。ブラウザで運用するため、このあたりの定義は緩くなっているのかもしれない。かなり大きな数で順番を指定するとか、明らかに妙な挙動をさせない限りは、滅多に何も起きないようになっているのかもしれない。

 逆に言えば、JavaScriptのみに慣れている人は「配列とは↑のようなものだ」という感じで、配列のとらえ方が緩いかもしれない。

 どこかで見かけた、JavaScriptは特殊な言語であるという意味が分かってきたように思う。

キューとして

 さて、上記の通りリストのようにも扱えるので、JavaScriptの配列はキューとして考えられそう。というか、多分これ最初からキューとして扱える形で実装されていると思われる。

 キューとして扱うときのことを考えて、とりあえずメソッドの役割をメモ。

役割関数
末尾にInpush()
先頭にInunshift()
先頭からOutshift()
末尾からOutpop()

 なおshift()とpop()の返り値はOutした値。push()とunshift()はInした後の配列の長さを返す。

 FIFO(First-In First-out)であればpush()で入れてshift()で取り出せばよい。
 LIFO(Last-In Last-out)ならpush()で入れてpop()で取り出し。

 一応FIFOならunshift()とpop()、LIFOならunshift()とshift()でもおそらく同じように扱えるはずなので、自分が分かりやすいほうを選べばよい。多分。

その他コメントなど

 こんな感じの緩い制約の配列を許してかつ動作させるとか、JavaScriptエンジンは偉大である。

広告

関連コンテンツと広告

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA