とても”奇妙”なJavaScriptの配列:JavaやCとは違うのだよ

白石俊平
2008/02/07 11:00

JavaやCとは全く異なるJavaScriptの配列。これをわかりやすく整理してみた。

in演算子で配列を走査することも可能!

 通常、配列をループ処理すると言えば以下のようにしますね。lengthプロパティで配列の長さを取得し、その回数分ループします。

    for (var i = 0, n = a.length; i < n; i++) {
        ...
    }

 しかしJavaScriptの配列は、通常のオブジェクトとほとんど変わりがないのでした。では、オブジェクトのプロパティを列挙するための演算子、「in」を用いてループすることもできるのではないでしょうか?

 その通りです。

 オブジェクトに格納されている配列の添え字を、以下のようにして次々と取り出し、ループ処理することが可能です。

    var a = ["a", "b", "c"];

    // indexには「0, 1, 2」という値が入る
    for (var index in a) {
        alert(a[index]);
    }

 in演算子を用いたループ処理は、ある特定のシチュエーションでは、通常のループ処理よりもパフォーマンスの向上に役立ちます。その話題は、次回のお楽しみと言うことにしましょう。

まとめ

 今回は、JavaScriptの配列はむしろハッシュテーブル(JavaScriptオブジェクト)であり、配列の添え字はハッシュのキーなのだ、と言うお話をしました。この事実は、JavaScriptのパフォーマンスチューニングをする際などには必須の知識です。必ず押さえておきましょう。

 さて、今回は字数の都合でここまで。次回は配列編の最後として、普段皆さんが使用している「配列.length」は、実はとても奇妙なプロパティであると言うことをお話ししたいと思います。

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

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