レッスンに戻る

関数を通してフィルタする

重要性: 5

私たちは、配列に対する組み込みのメソッド arr.filter(f) を持っています。それはすべての要素を関数 f を通してフィルタします。もし true を帰す場合、その要素は結果の配列に入れられます。

“すぐに使える” フィルタを作りましょう:

  • inBetween(a, b)ab の間、またはそれらと等しい(包括的)
  • inArray([...]) – 与えられた配列に存在する

使用方法はこのようになります:

  • arr.filter(inBetween(3,6)) – 3 から 6 までの値だけを選び出します
  • arr.filter(inArray([1,2,3]))[1,2,3] のメンバの1つにマッチする要素だけを選び出します

例:

/* .. your code for inBetween and inArray */
let arr = [1, 2, 3, 4, 5, 6, 7];

alert( arr.filter(inBetween(3, 6)) ); // 3,4,5,6

alert( arr.filter(inArray([1, 2, 10])) ); // 1,2

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

Filter inBetween

function inBetween(a, b) {
  return function(x) {
    return x >= a && x <= b;
  };
}

let arr = [1, 2, 3, 4, 5, 6, 7];
alert( arr.filter(inBetween(3, 6)) ); // 3,4,5,6

Filter inArray

function inArray(arr) {
  return function(x) {
    return arr.includes(x);
  };
}

let arr = [1, 2, 3, 4, 5, 6, 7];
alert( arr.filter(inArray([1, 2, 10])) ); // 1,2
function inArray(arr) {
  return x => arr.includes(x);
}

function inBetween(a, b) {
  return x => (x >= a && x <= b);
}

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