Array.filter()関数を自作してみよう
配列から条件を満たす要素のみに絞り込んだ配列を返す関数 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
// })