جداسازی از طریق تابع
اهمیت: 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] برابر هستند را برگرداند.
برای مثال:
/* .. inArray و inBetween کد شما برای */
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
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
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);
}