コールバック関数

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);

投稿者 java

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です