在 JavaScript 中实现自定义函数,如 Array.prototype.filter() 函数


问题

我们需要编写一个存在于 Array 类的原型对象中的 JavaScript 函数。

我们的函数应将回调函数作为其唯一的参数。此回调函数应为数组的每个元素调用。

此回调函数应有两个参数,即对应的元素及其索引。如果回调函数返回 true,我们应将对应的元素包含在输出数组中,否则应将其排除在外。

示例

代码如下 −

 实时演示

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 ]

更新于: 21-Apr-2021

829 次浏览

开启您的 职业生涯

完成课程获得认证

立即开始
广告