Computer >> Máy Tính >  >> Lập trình >> Javascript

Triển khai một hàm tùy chỉnh như hàm Array.prototype.filter () trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript sống trên Đối tượng nguyên mẫu của lớp Mảng.

Hàm của chúng ta nên sử dụng một hàm gọi lại làm đối số duy nhất. Hàm gọi lại này phải được gọi cho từng phần tử của mảng.

Và hàm gọi lại đó sẽ nhận vào hai đối số là phần tử tương ứng và chỉ mục của nó. Nếu hàm gọi lại trả về true, chúng ta nên bao gồm phần tử tương ứng trong mảng đầu ra của mình, nếu không, chúng ta nên loại trừ nó.

Ví dụ

Sau đây là mã -

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));

Đầu ra

[ 6, 2, -4, 8, 10 ]