js中filter的实现
Js中filter的实现
思路分析
filter
是数组的方法,因此我们可以将它挂载到prototype上filter
接收一个函数,对数组的每一个元素都调用这个函数- 一般传递的参数是个过滤条件,将符合要求的元素返回,会返回新数组
代码实现
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)