思路整理
大体脉路
- 形参是函数
- 形参函数需要传入参数。(当前元素,索引,数组本身)
- 形参函数体返回条件
- 最终返回满足条件的元素组成的数组
代码实现
Array.prototype.myFilter = function(arg) {
if (typeof arg !== 'function') {
throw new SyntaxError(arg + ' is not a function')
}
var fn = arg
var result = []
for (var i = 0; i < this.length; i++) {
var condition = fn(this[i], i, this)
if (condition) {
result.push(this[i])
}
}
return result
}
若有考虑不周的地方,请予以指正