关于reduce方法,其作用是在给定初始值的情况下对数组中的元素进行操作,大致说来参数有两个
-
回调函数
回调函数由四个参数构成(previousValue, currentValue, currentIndex(可选), array(可选))
-
初始值
其实就是操作的前置值,不传时就是默认是array[0],,此时的第一个currentValue 变为array[1];当给其传参以后,previousValue就是传入的值,第一个currentValue 就是array[0]
const arr = [1,2,3,4,5,6,7,8,9]
const sum = arr.reduce((previousValue, currentValue, currentIndex) => {
console.log(`previousValue:${previousValue}, currentValue:${currentValue}, currentIndex:${currentIndex}`);
return previousValue + currentValue
}, 0);
console.log(sum);
/**
previousValue:0, currentValue:1, currentIndex:0
previousValue:1, currentValue:2, currentIndex:1
previousValue:3, currentValue:3, currentIndex:2
previousValue:6, currentValue:4, currentIndex:3
previousValue:10, currentValue:5, currentIndex:4
previousValue:15, currentValue:6, currentIndex:5
previousValue:21, currentValue:7, currentIndex:6
previousValue:28, currentValue:8, currentIndex:7
previousValue:36, currentValue:9, currentIndex:8
*/
const arr = [1,2,3,4,5,6,7,8,9]
const sum = arr.reduce((previousValue, currentValue, currentIndex) => {
console.log(`previousValue:${previousValue}, currentValue:${currentValue}, currentIndex:${currentIndex}`);
return previousValue + currentValue
});
console.log(sum);
/**
previousValue:1, currentValue:2, currentIndex:1
previousValue:3, currentValue:3, currentIndex:2
previousValue:6, currentValue:4, currentIndex:3
previousValue:10, currentValue:5, currentIndex:4
previousValue:15, currentValue:6, currentIndex:5
previousValue:21, currentValue:7, currentIndex:6
previousValue:28, currentValue:8, currentIndex:7
previousValue:36, currentValue:9, currentIndex:8
*/