配列から条件を満たす要素のみに絞り込んだ配列を返す関数 filter(array, callback) を作成せよ
- 作成する関数の第1引数は絞り込み前の配列、第2引数は評価関数とし、返り値を絞り込んだ後の配列とする
- 使っていいメソッドはArray.pushのみとする
- コールバックを利用し汎用的な関数にすること
- 絞り込み条件は10以上30以下とする
実行コマンド
node main.js 34 27 94 12 30 14 25
出力
[ 27, 12, 30, 14, 25 ]
解答例
function filter(array, callback) { const ret = [] for (let i = 0; i < array.length; i++) { if (callback(array[i])) { ret.push(array[i]) } } return ret } const args = process.argv.slice(2) // 評価関数 const eval = function (a) { return a >= 10 && a <= 30 } const result = filter(args, eval) console.log(result) // アロー関数を使うと // const result = filter(args, (a) => { // return a >= 10 && a <= 30 // })