ArrayオブジェクトにはArrayメソッドと呼ばれるfilter,forEach,every,map,soeの5つのメソッドが用意されている。
これらはECMAScriptの標準には含まれていない。
Firefox,Safari,Opera,Chromeでは動作するが、IEでは動作しない。
filter()は、要素がある基準を満たさない限り要素が加えられないようにする。
forEach()には関数を指定する。そうするとその関数が各要素にたいして処理を行う。関数によって配列の中身が影響を受けることはない。
every()は配列のあらゆる要素に対し、それが一つがfalseを返すまでコールバック関数を実行する。
map()は全配列要素に対してコールバック関数を実行し、結果から新しい配列を作成する。
some()は、every()の逆で、どれか一つがtrueを返すまでコールバック関数を実行する。
コールバック関数はそれぞれ、element, index, array の3個の引数を持っている。値を返すものと返さないものがあり、元の配列に影響を及ぼすものはな い。
function checkColor(element, index, array){
return( element >= 0 && element < 256 );
}
function chekCount(element, index, array){
return( element.length == 3 );
}
var colors = [[0,262,255], [255,255,255],[255,0,0],[0,255,0,],[0,0,255]
,-5,999,255]];
//配列の各要素にたいしcheckColor()で適合したものだけをlist1に追加
var list1 = new Array();
for( var i in colors ){
list1[i] = colors[i].filter(checkColor);
}
//値の個数をチェックして適合したものをlist2に追加
var list2 = list1.filter(checkCount);