上代码
通过数组原型添加swipeArr方法,绑定到原型上,至此所有的数组统一使用该方法
Array.prototype.swipeArr = function(fn, context){
const arr = this;
// context = Object(context) || global;
const resarr = [];
for(let i =0;i<arr.length;i++){
let item = arr[i];
if(i%2 !== 0){
res = fn.call(this, item, i, arr);
resarr.push(res);
}
}
return resarr;
}
//查看绑定效果
console.log(Array.prototype);
//测试效果
[1,2,3].swipeArr(function(params){
console.log(params)
})
测试调用结果,如下图:
更新
function mp(){
let context = this,
clength = context.length,
fn = argument[0],
i=0;
for(;i<clength;i++){
fn(context[i], i, context)
}
}
Array.prototype.map = mp
理解了以上原理,就可以自由组合,编写自己想要的过滤方法