今まで配列の各要素を参照したり変更したり抽出するのにforループを使っていましたが、そんな時に便利なメソッドmap()とfilter()があることを最近になって知りました。

Array.map()メソッドは「配列の各要素に対して処理を行い、その結果を新しい配列として返す」という関数です。例えば果物の名前の配列に対して、「"ジュース"を付加する」という処理を行うには以下のように記述します。

var array:Array = ["apple","orange","banana"]; var newArray:Array = array.map(addJuice); function addJuice(elem:String, index:int, array:Array):String { return elem + "ジュース"; } trace(newArray); //出力:appleジュース,orangeジュース,bananaジュース

Array.filter()メソッドは「配列の各要素のうち、条件に合致するものを抽出して新しい配列として返す」という関数です。果物の名前の配列に対して「文字数6文字以上の要素を抜き出す」という処理を行うには以下のように記述します。

var array:Array = ["apple","orange","banana"]; var newArray:Array = array.filter(sixLiterals); function sixLiterals(elem:String, index:int, array:Array):Boolean { if(elem.length >= 6) { return true; } else { return false; } } trace(newArray); //出力:orange,banana

map()は「全自動たまご割り機」、filter()は「全自動ひよこのオスメス選別機」として使用する感覚ですね。便利!

HTML5飯