array.filter( callback )メソッドは、配列の各要素に、引数「callback」に指定したフィルタリング用のコールバック関数を実行し、フィルタリングを通過した配列要素を格納した新たな配列を生成するメソッド。
構文
array.filter( callback )
引数
- callback
- フィルタリングに使用するコールバック関数を指定する。
戻り値
フィルタリングを通過した配列要素を格納した新たな配列。
コールバック関数の構文
function callback( value, index, array ) {
// フィルタリングを通過させる場合、「true」を返す
// フィルタリングを通過させない場合、「false」を返す
}
// フィルタリングを通過させる場合、「true」を返す
// フィルタリングを通過させない場合、「false」を返す
}
引数
- value
- 現在の配列要素の値。
- index
- 現在の配列要素のインデックス。
- array
- 現在の要素を格納している配列オブジェクト。
サンプル
データ型のフィルタリング
数値(number)型だけを取得する。
<script type="text/javascript">
function sampleFunc( $value ) {
return ( typeof( $value ) === 'number' );
}
var $sampleArray = new Array( '43', 14, "55", 89, '文字列', 31 );
var $sampleArrayFilter = $sampleArray.filter( sampleFunc );
document.write( $sampleArrayFilter + '<br />' );
</script>
function sampleFunc( $value ) {
return ( typeof( $value ) === 'number' );
}
var $sampleArray = new Array( '43', 14, "55", 89, '文字列', 31 );
var $sampleArrayFilter = $sampleArray.filter( sampleFunc );
document.write( $sampleArrayFilter + '<br />' );
</script>
↓↓↓出力結果↓↓↓
数値のフィルタリング
50以上の数値だけを取得する。
<script type="text/javascript">
function sampleFunc( $value ) {
return ( $value >= 50 );
}
var $sampleArray = new Array( 43, 14, 55, 89, 31 );
var $sampleArrayFilter = $sampleArray.filter( sampleFunc );
document.write( $sampleArrayFilter + '<br />' );
</script>
function sampleFunc( $value ) {
return ( $value >= 50 );
}
var $sampleArray = new Array( 43, 14, 55, 89, 31 );
var $sampleArrayFilter = $sampleArray.filter( sampleFunc );
document.write( $sampleArrayFilter + '<br />' );
</script>
↓↓↓出力結果↓↓↓
数値のフィルタリング(複数条件)
30以上70以下の数値を取得する。
<script type="text/javascript">
function sampleFunc( $value ) {
if ( $value <= 30 ) {
return ( false );
} else if ( $value >= 70 ) {
return ( false );
} else {
return ( true );
}
}
var $sampleArray = new Array( 43, 14, 55, 89, 31 );
var $sampleArrayFilter = $sampleArray.filter( sampleFunc );
document.write( $sampleArrayFilter + '<br />' );
</script>
function sampleFunc( $value ) {
if ( $value <= 30 ) {
return ( false );
} else if ( $value >= 70 ) {
return ( false );
} else {
return ( true );
}
}
var $sampleArray = new Array( 43, 14, 55, 89, 31 );
var $sampleArrayFilter = $sampleArray.filter( sampleFunc );
document.write( $sampleArrayFilter + '<br />' );
</script>
↓↓↓出力結果↓↓↓