js中filter的实现

Js中filter的实现

思路分析

  1. filter是数组的方法,因此我们可以将它挂载到prototype上
  2. filter接收一个函数,对数组的每一个元素都调用这个函数
  3. 一般传递的参数是个过滤条件,将符合要求的元素返回,会返回新数组

代码实现

Array.prototype._filter = function (fn) {
  if (typeof (fn) !== 'function') return
  const result = []
  for (let i = 0; i < this.length; i++) {
    // filter得到的是数组中符合条件的值
    // 返回值是boolean类型,因此做判断,为true则添加
    if (fn(this[i],i,this)) {
      result.push(this[i])
    }
  }
  return result
}
// 测试
let newArr = arr.filter(function (item) {
  if (item > 5) {
  	return item
  }
})
console.log(newArr)
posted @ 2022-12-16 11:56  含若飞  阅读(334)  评论(0编辑  收藏  举报