Array.prototype.myreduce = function(fn,init){
let data = this
let pre = init || 0
let ans = 0
for(let i=0;i<data.length;i++){
let res = fn(typeof init !=='number' && init !== undefined?pre:0,data[i],i,this)
ans +=res
}
if(typeof init !=='number' && init !== undefined){
return pre
}else{
return ans+init
}
}
let keys = ['name', 'age'];
let values = ['张三', 18];
let res = keys.myreduce((prev, next, index, arr) => (prev[next] = values[index], prev), {});
console.log(res); // {name: '张三', age: 18}
手写js中的reduce方法
最新推荐文章于 2024-06-23 14:50:42 发布