博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js小拔高——写一个reduce
阅读量:6031 次
发布时间:2019-06-20

本文共 691 字,大约阅读时间需要 2 分钟。

缘起:最近看油管里面有一个关于js面试的视频,里面提到了可能会让你写一写reduce等函数,于是也来一起小拔高拔高。

先写写map

  • 首先回忆平时是如何使用的map。

    // const newarr = arr.map(v=>v*v)
  • 于是知道我们写的回调会被map调用,并且传一个v进来。

    Array.prototype.myMap = function (callback){  const newArray = []  this.forEach(ele => {    newArray.push(callback(ele))  })  return newArray}

开始写reduce

  • 先上查查reduce的具体参数和用法。

    // const afterReduceVal = arr.reduce((acc,cur,idx,src)=>{do something and return acc},init)
  • 也就是说reduce会调用我们的回调,并且传给我们累加值acc,当前值cur,当前索引idx,源数组src。其中累加值的初始值是我们传的init,如果我们没传,那么累加值的初始值就会是数组的第一个元素。

    Array.prototype.myReduce = function(callback,init) {  let acc,idx;  if(init){    acc = init // 检测我们是不是传了init    idx = 0  } else {    acc = this[0]    idx = 1  }  for(let i = idx;i

转载地址:http://yedhx.baihongyu.com/

你可能感兴趣的文章
乔布斯走了。你还期待苹果吗?
查看>>
优先级
查看>>
Tomcat与Web服务器、应用服务器的关系
查看>>
用DFS实现全排列 & 八皇后问题
查看>>
深度学习博客
查看>>
Android总结篇系列:Android Service
查看>>
Android dumpsys命令的使用
查看>>
Linux Kernel系列一:开篇和Kernel启动概要
查看>>
BZOJ 2756: [SCOI2012]奇怪的游戏 网络流/二分
查看>>
master + worker模式的node多核解决框架——node-cluster
查看>>
Android如何实现超级棒的沉浸式体验
查看>>
使用node打造自己的命令行工具方法教程
查看>>
Express代理中间件问题与解决方案
查看>>
||和&&返回什么?
查看>>
linux在文件中查找指定字符串,然后根据查找结果来做进一步的处理
查看>>
在Oracle中删除所有强制性外键约束
查看>>
dhcp
查看>>
【R】R语言使用命令行参数 - [编程技巧(Program Skill)]
查看>>
经典算法题每日演练——第二题 五家共井
查看>>
存储过程中拼接的变量和点的问题
查看>>