TOPシステム開発> メソッドの解説
まるごとJavaScript&Ajax!
JavaScriptを洗練させるPrototype.js

第5回:代表的なメソッドの紹介
著者:ガイアックス  天野 仁史   2007/3/7
1   2  次のページ
メソッドの解説

   前回に引き続き、配列を操作するメソッドを紹介します。取り上げるのはeachメソッド、collectメソッド、injectメソッド、invokeメソッドです。
eachメソッド

   まずは、eachメソッドです。eachメソッドは、配列のすべての要素に対して何らかの同一処理を行うメソッドです。同一処理は、関数オブジェクトによって定義します。eachメソッドはこの関数オブジェクトを引数にとることで、全要素に対して同一処理を行うことができるのです。このように、配列の要素に対して反復処理(イテレーション)するための関数オブジェクトのことをイテレータと呼びます。

   リスト14の例を見てください。eachを呼び出すと、配列の要素数だけイテレータが呼び出されているのが分かります。eachの場合は、イテレータの第1引数には配列の要素、第2引数には配列の要素番号が渡されます。

リスト14:eachメソッド
// 配列の生成
var array = ['JavaScript', 'Prototype.js'];
// イテレータの生成
var iterator = function(e, i) { alert(i + ' 番目の要素は、' + e) };

array.each(iterator);
   // 0番目の要素はJavaScript、1番目の要素はPrototype.jsと順に表示する


collectメソッド

   collectメソッドは、eachメソッドと同じように、配列のすべての要素に対して何らかの同一処理を行うメソッドです。しかし、eachメソッドとは若干異なり、それぞれのイテレータが返す値をまとめて配列として返します。collectメソッドを用いることによって、配列の変換を非常にシンプルに記述できます。使いかたはリスト15の例を見てください。

リスト15:collectメソッド
var array = [1, 2];
var iterator = function(e) { return e + 1 };

var newArray = array.collect(iterator); // [2, 3]という配列が生成される

1   2  次のページ

株式会社ガイアックス 天野 仁史
著者プロフィール
株式会社ガイアックス   天野 仁史
渋谷で働くWebプログラマ。出身は石川県金沢市。21歳でプログラミングに出会い、IT戦士になることを決意。それからというもの、寝ても覚めてもプログラムを書き続け今に至る。はてなでamachangというidでブログを書いてます。

IT戦記
http://d.hatena.ne.jp/amachang/


INDEX
第5回:代表的なメソッドの紹介
メソッドの解説
  injectメソッド