1. reduce的使用
数组方法 reduce 用来迭代一个数组,并且把它累积到一个值中。
使用 reduce 方法来让 array 中的所有值相加。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>reduce的使用</title>
</head>
<body>
<script>
var arr = [1, 2, 3, 4, 5];
sum = arr.reduce(function(prev, cur, index, arr) {
//输出的是第一项的值或上一次叠加的结果,正在被处理的元素,正在被处理的元素的索引值
console.log(prev, cur, index);
return prev + cur;
})
console.log(arr, sum); //输入数组本身和最后的结果
</script>
</body>
</html>
2. 手写实现reduce源码
/**
*
* @param callback 为传入的回调函数
* @param prev 为初始值
*/
Array.prototype.myreduce = function (callback, accumulator) {
let i = 0
if (!accumulator) {
i = 1
accumulator = arr[0]
}
for (; i < this.length; i++) {
accumulator = callback(accumulator, this[i], i, this)
}
return accumulator
}
const arr = [1, 2, 3, 4]
let arr1 = arr.myreduce(function (accumulator, currentValue, index, arr) {
return accumulator + currentValue
}, 22)
console.log(arr1) // 32