<body>
<script>
// //接收一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回
// let arr1 = ['1', '3', '8']
// console.log(arr1);
// //为数字乘以2返回
// arr2 = arr1.map((item) => { return item * 2 });
// console.log(arr2);
// //简化函数
// arr3 = arr1.map(item => item * 2);
// console.log(arr3);
//接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
// const arr = [1, 20, -5, 3];
// arr.reduce((a,b) => {
// console.log(a);
// console.log(b);
// },10)
// //没有初始值:
// console.log(arr.reduce((a, b) => a + b));//19
// console.log(arr.reduce((a, b) => a * b));//-300
// //指定初始值:
// console.log(arr.reduce((a, b) => a + b, 1));//20
// console.log(arr.reduce((a, b) => a * b, 0));//-0
//var numbers = [1, 2, 3, 4];
// function getSum(total, num) {
// return total + num;
// }
// console.log(numbers.reduce(getSum));
//reduce(callback,initiaValue)会传入两个变量,回调函数(callback)和初始值(initiaValue)。
//console.log(numbers.reduce((total, num) => total))
/* arr.reduce(callback,[initialValue])
callback (执行数组中每个值的函数,包含四个参数)
1、previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
2、currentValue (数组中当前被处理的元素)
3、index (当前元素在数组中的索引)
4、array (调用 reduce 的数组)
initialValue (作为第一次调用 callback 的第一个参数(初始previousValue)。)*/
//数组求和
var arr = [1, 2, 3, 4];
console.log(1);
var sum = arr.reduce(function (prev, cur, index, arr) {
//调试,实在不明白可以单步调试一下
//debugger
console.log(prev, cur, index, arr);
//return prev + cur;
return 1;
//下面的指定pre的初始值为0
}, 0)
//console.log(arr, sum);
</script>
</body>
es6 map和Reduce
最新推荐文章于 2022-06-11 22:47:47 发布