2011年04月11日

JavaScriptのindexOf(その1)

まずは手始めにJavaScriptのネタ。

IE8では、配列の要素を検索する関数、indexOf()が実装されていません。
Chromeなんかでは実装されてるのにね。
以下のようなコードを書いてみました。
JSファイルの先頭にでもぶち込んでおきましょう。

indexOf()の実装
if (!Array.indexOf) {
Array.prototype.indexOf = function(o) {
for (var i in this) {
if (this[i] == o) {
return i;
}
}
return -1;
}
}


まず1行目でArrayクラスにindexOfが存在するかを確認します。
存在しなかったら、2行目でArrayクラスのprototypeにindexOfの実装を追加します。
これで以降、全ての配列でindexOf()を使えるようになります。

indexOf()の使い方
var array = {"a", "b", "c", "d"};
var foundIndex = array.indexOf("b");
// ↑foundIndexには1が入ります。
foundIndex = array.indexOf("e");
// ↑eは見つからないので-1が戻ります。


既存のクラスの定義を簡単に書き換えられるなんて、JavaやC#などの硬い言語からすると夢のようですね。
やりすぎると悪夢になりそうですが。






ラベル:javascript
posted by ぺるたご at 22:44| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。