配列内の全要素に対してフィルタ処理する (filter)
説明
配列内の全要素に対してフィルタ処理するにはfilter()を使います。最初のパラメータに要素を調べる際に呼び出すためのコールバック関数、2番目には最初のパラメータで呼び出すコールバック関数内でthisとして指定するオブジェクトを指定します。最初のパラメータで呼び出すコールバック関数には3つのパラメータが渡されます。最初のパラメータには要素内容、2番目のパラメータには渡された要素の参照番号(インデックス)、3番目のパラメータには配列全体(オブジェクト)が渡されます。コールバック関数からの戻り値がtrueの要素だけが新しい配列要素として返されます。IE6, IE7では動作しません。
サンプルプログラム
var ary = [10,-2, 0,7,-8,12,-5,34,-99];
var result = ary.filter(valueCheck, 0); // 0以下、つまり負数だけ抽出
document.write(result+"<br>");
// check function
function valueCheck(ele, index, array){
if (ele < this) { // 0以下、つまり負数だけを返す
return true;
}else{
return false;
}
}