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つを提供している。
どちらのメソッドも配列の長さに影響を与える。pushを実行した場合には配列の長さは1増え、shiftを実行した場合には1減るのである。次に示すリストBでは、これら2つのメソッドを用いて数値のキューを作成し、キューの最初の要素を取得している。
- 3人の推薦記事
- 1人がクリップ
-
ソーシャルブックマーク(-)
- トラックバック(0)
- 今日のトップ記事
- 2日前
- 4日前
- 6日前
- 7日前
- ホワイトペーパー
- 読者投票
今、使っているマシンのOSは?
- 話題のタグ
Flash
Off Topic
SOA
Apache
Webアプリケーション開発
Leopard
iPod touch
Webデザイン
Database
iPhone 3G
Ajax
Tips
PHP
JavaScript
Internet Explorer
Google
iPhone
MySQL
Firefox
仮想化
Windows
RIA
Microsoft
入門
ライブラリ
Solaris
Ruby
ブラウザ
Firefox 3
Mozilla
server
小技
XHTML
Eclipse
オープンソース
Linux
リファレンス
Apple
開発環境
CSS
Safari
フレームワーク
イロハ
HTML
Mac OS X
Opera
Python
Java
Adobe
C/C++
話題のタグを見る »
MS、Vistaとの互換性をチェックできる「Compatibility Center」リリースへ
「似非」SOAを見破る10の方法
Firefox 3のアドオンやテーマ管理を容易にする
openSUSE 11.0を試してみた
フォトレポート:世界各国の優秀な技術者がパリに集結--Imagine Cup 2008世界大会
バッチ処理でデータベース活用:4つの課題と5つの解決ポイント
Rubyでどう書く?:RubyでWord文書を作成する
Techno Exchange
「未来の、その先」をどう提言していくか
DELL連載第4回〜「Microsoft System Center」
ZDNet Japan Green IT
今知るべき仮想化情報