神戸プログラミングアカデミーのブログ

「未経験から」「スキルアップ」「起業を目指す」無料で学べる神戸のプログラミング学校&学習コミュニティ

配列を受け取りコールバックで指定された条件のもの省いて返す関数を作成せよ

配列からコールバックで指定された条件を満たす要素を省いて返す関数 deleteIf(array, callback) を作成せよ

  • 作成する関数の第1引数は絞り込み前の配列、第2引数は評価関数とし、返り値を省いた後の配列とする
  • 使っていいメソッドはArray.pushのみとする
  • コールバックを利用し汎用的な関数にすること
  • 省く条件は10以上30以下とする

実行コマンド

node main.js 34 27 94 12 30 14 25

出力

[ 34, 94 ]

解答例

const args = process.argv.slice(2)
function deleteIf(array, callback) {
  const ret = []
  for (let i = 0; i < array.length; i++) {
    if (!callback(array[i])) {
      ret.push(array[i])
    }
  }
  return ret
}
console.log(deleteIf(args, function (item) {
  return item >= 10 && item <= 30
}))