関数を通してフィルタする
重要性: 5
私たちは、配列に対する組み込みのメソッド arr.filter(f)
を持っています。それはすべての要素を関数 f
を通してフィルタします。もし true
を帰す場合、その要素は結果の配列に入れられます。
“すぐに使える” フィルタを作りましょう:
inBetween(a, b)
–a
とb
の間、またはそれらと等しい(包括的)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);
}