
目次
宣言
var a = []
と書けばいい模様。詳しくはnew Arrayとかもあるらしいが、簡単なのはこれ。最初に初期の長さを決めておきたい場合はnew Arrayらしいが、後述する通りJavaScriptの配列はほぼリスト扱いなのでこの辺アバウトでOK。
JavaScriptにおける配列の性質
配列というよりはPUSH、POPもあるので、どう考えても可変かつリストに近い。特に宣言しなくても入れたい箇所に値を代入できそうな様子。つまりは、多分ArrayBoundOfException?だったか、そういうものは起きないようだ。ブラウザで運用するため、このあたりの定義は緩くなっているのかもしれない。かなり大きな数で順番を指定するとか、明らかに妙な挙動をさせない限りは、滅多に何も起きないようになっているのかもしれない。
逆に言えば、JavaScriptのみに慣れている人は「配列とは↑のようなものだ」という感じで、配列のとらえ方が緩いかもしれない。
どこかで見かけた、JavaScriptは特殊な言語であるという意味が分かってきたように思う。
キューとして
さて、上記の通りリストのようにも扱えるので、JavaScriptの配列はキューとして考えられそう。というか、多分これ最初からキューとして扱える形で実装されていると思われる。
キューとして扱うときのことを考えて、とりあえずメソッドの役割をメモ。
役割 | 関数 |
---|---|
末尾にIn | push() |
先頭にIn | unshift() |
先頭からOut | shift() |
末尾からOut | pop() |
なお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エンジンは偉大である。