レッスンに戻る

インプレースで範囲をフィルタする

重要性: 4

配列 arr を取得し、ab の間を除くすべての値をそこから削除する関数 filterRangeInPlace(arr, a, b) を書いてください。テストは a ≤ arr[i] ≤ b です。

この関数は配列のみを修正するべきです。なにも返却するべきではありません。

例:

let arr = [5, 3, 8, 1];

filterRangeInPlace(arr, 1, 4); // 1 から 4 までの値以外を削除

alert( arr ); // [3, 1]

テストと一緒にサンドボックスを開く

function filterRangeInPlace(arr, a, b) {

  for (let i = 0; i < arr.length; i++) {
    let val = arr[i];

    // remove if outside of the interval
    if (val < a || val > b) {
      arr.splice(i, 1);
      i--;
    }
  }

}

サンドボックスでテストと一緒に解答を開く