JavaScriptの技法:データ構造を配列で作成する

文:Nick Gibson(Builder AU)
翻訳校正:原井彰弘
2008/01/09 07:00

JavaScriptの配列オブジェクトは、一つの変数に複数のデータを割り当てる機能を強力にサポートしている。しかし、配列を利用すれば、それだけではなくスタックやキューといったデータ構造をアプリケーションで利用することも可能になる。

 JavaScriptは、JavaやCのような堅牢な言語と数多くの類似点を持っている一方で、まったく直感に反する機能も多数存在する。JavaScriptの配列はまさにそのような設計であり、開発者が見落としがちな分かりにくい機能がいくつも含まれている。

配列に勝る配列

 JavaScriptのArrayオブジェクトを用いると、一連の値を一つの変数名に格納することが可能となる。リストAでは、5つの要素を持つ配列(ここの要素はウェブサイトのアドレスを表している)を作成し、ループによってそれぞれの値を警告ダイアログボックスに表示している。

リストA

<html><head>
<title>JavaScript arrays</title>
<script language="JavaScript">
function arrayDemo() {
var index;
var webSites = new Array();
webSites[0] = "TechRepublic.com";
webSites[1] = "CNET.com";
webSites[2] = "News.com";
for (index in webSites) {
alert(index + " - " + webSites[index]);
} }
</script></head><body>
<form name="frmTest">
<input name="btnArray" value="Array" type="button" onClick="arrayDemo();" />
</form></body></html>

 JavaScriptは多次元配列をサポートしているとはいえないが、配列の配列を作成することは可能だ。さらに、JavaScriptのArrayオブジェクトは通常の配列以上の機能を提供しているため、Arrayオブジェクトを利用してキューやスタックの機能を実現することも可能である。

キュー

 キューは、データの格納や取り出しにFirst-in First-out(FIFO)の手法を用いたデータ構造だ。並んだ順で対応が行われる銀行での待ち行列と同じであり、新しいアイテムはリストの最後尾に追加される。

 以下に示すように、JavaScriptのArrayオブジェクトはキューを実現するのに必要なメソッド2つを提供している。

shift
配列の最初の要素を削除し、その要素を返す。
push
リストの末尾に一つもしくはそれ以上の要素を追加する。戻り値は配列の新しい長さとなる。

 どちらのメソッドも配列の長さに影響を与える。pushを実行した場合には配列の長さは1増え、shiftを実行した場合には1減るのである。次に示すリストBでは、これら2つのメソッドを用いて数値のキューを作成し、キューの最初の要素を取得している。

記事の感想やご意見をコメントでお寄せください(CNET_IDログインが必要です)
ログイン パスワードを忘れた方  |  新規登録
  • 新着記事
  • 人気記事
  • 特集
  • ブログ
  • 読者投票
    今、使っているマシンのOSは?

    投票受付期間:2008年6月27日 〜 2008年7月11日
  • » 投票しないで結果だけ見る