Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การใช้ฟังก์ชันที่กำหนดเอง เช่น ฟังก์ชัน Array.prototype.filter() ใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน 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 ]