Filter dengan fungsi
Kita memiliki method bawaan arr.filter(f) untuk array. Method tersebut menyaring seluruh elemen menggunakan fungsi f. Apabila mengembalikan true, maka elemen tersebut dikembalikan di array hasil.
Buatlah filter ???yang siap pakai???:
inBetween(a, b)??? antaraadanbatau sama dengan (inklusif).inArray([...])??? terkandung di dalam array.
Penggunaannya harus seperti ini:
arr.filter(inBetween(3,6))??? menyimpan hanya nilai di antara 3 dan 6.arr.filter(inArray([1,2,3]))??? menyimpan elemen apabila sama dengan salah satu dari[1,2,3].
Sebagai contoh:
/* .. implementasi inBetween dan 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