ES-6对数组做了一些扩展,有些人对于reduce有些疑惑,其实这个东西非常简单。
自己实现一个reduce你就明白了
Array.prototype.redu = function(func) { let result = this[0]; for (let i = 1; i < this.length; i++) { result = func(result, this[i], i) } return result } const arr = [1, 5, 8, 10, 2, 3, 4, 60, 5] let str = arr.redu((temp, item, index) => { if (index !== arr.length - 1) { return temp += item } else { return (temp + item) / arr.length } }) console.log(str)
再reduce内部是从1开始遍历,将数组第一项作为临时变量。
每次循环拿到函数计算结果重置result,再将其传入函数,一个循环下来reduce就会拿到最终结果,也就是第一个参数的结果。
所以说当你不理解一个抽象的现象时就尝试自己实现一下。
原文地址:https://www.cnblogs.com/tengx/p/12730147.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。