ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่อยู่บน Object ต้นแบบของคลาส Array
ฟังก์ชันของเราควรใช้ฟังก์ชันเรียกกลับเป็นอาร์กิวเมนต์เดียว ควรเรียกใช้ฟังก์ชันเรียกกลับนี้สำหรับแต่ละองค์ประกอบของอาร์เรย์
และฟังก์ชันการเรียกกลับนั้นควรใช้องค์ประกอบและดัชนีที่สอดคล้องกันในสองอาร์กิวเมนต์ หากฟังก์ชันเรียกกลับคืนค่าเป็น จริง เราควรรวมองค์ประกอบที่เกี่ยวข้องในอาร์เรย์เอาต์พุตของเรา มิฉะนั้น เราควรแยกออก
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr = [5, 3, 6, 2, 7, -4, 8, 10];
const isEven = num => num % 2 === 0;
Array.prototype.customFilter = function(callback){
const res = [];
for(let i = 0; i < this.length; i++){
const el = this[i];
if(callback(el, i)){
res.push(el);
};
};
return res;
};
console.log(arr.customFilter(isEven)); ผลลัพธ์
[ 6, 2, -4, 8, 10 ]