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)
– antaraa
danb
atau 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