<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="杨欣">
<title>reduce</title>
</head> <body> <script>
Array.prototype.my_reduce = function (callback, initialValue) {
if (!Array.isArray(this) || !this.length || typeof callback !== 'function') {
return []
} else {
// 判断是否有初始值
let hasInitialValue = initialValue !== undefined;
let value = hasInitialValue ? initialValue : tihs[0];
for (let index = hasInitialValue ? 0 : 1; index < this.length; index++) {
const element = this[index];
value = callback(value, element, index, this)
}
return value
}
} let arr = [1, 2, 3, 4, 5]
let res = arr.my_reduce((pre, cur, i, arr) => {
console.log(pre, cur, i, arr)
return pre + cur
}, 10)
console.log(res)//25
</script>
</body> </html>

最新文章

  1. HTML5滑动(swipe)事件
  2. 内存角度探寻C++面向对象 之 继承、多态
  3. iOS应用架构谈 开篇
  4. Kanzi UI Solution
  5. Haskell 与范畴论
  6. python 练习24
  7. MySQL 跳过同步错误方法
  8. WebService教程和分析
  9. jdbc - 连接数据库的url
  10. cocos2d-x项目过程记录(ios和android设备的适配)
  11. linux中/etc与/var目录,各是什么意思?这两个目录下的文件有什么特点?
  12. jQuery实现发送验证码倒计时60秒
  13. 关于hosts文件的原理与制作
  14. Akka(39): Http:File streaming-文件交换
  15. 理解Activity.runOnUiThread()
  16. bzoj 4006: [JLOI2015]管道连接
  17. oss web直传
  18. 简单js 切换左侧栏目的样式
  19. 附005.Docker Compose文件详解
  20. 混合模式为什么成为占有率最高的app开发技术

热门文章

  1. TypeScript注意
  2. ceph各个版本之间参数变化分析
  3. CentOS GRUB损坏修复方法
  4. linux下制作软件包安装服务器
  5. OMV openmediavault NAS系统命令显示颜色
  6. List、Tuple、Set、Dictionary数据类型
  7. java8的stream功能及常用方法
  8. 企业级工作流解决方案(九)--微服务Tcp消息传输模型之客户端处理
  9. 凭借着这份面经,我拿下了字节,美团的offer!
  10. 面试阿里,字节,美团必看的Spring的Bean管理详解