这是一个考察面试者对reduce函数用途的js面试题。下面我们看一下reduce函数的函数介绍:
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。reduce() 对于空数组是不会执行回调函数的。参数如下:
可以看到这是一个求和,或者统计有关的函数,那么可以得出以下用途。
基础数据:
const baseData = [ {age: 10, name: '小明'}, {age: 15, name: '小黄'}, {age: 18, name: '小王'}, {age: 18, name: '小白'}, {age: 21, name: '小陈'}]
1. 数组求和
求出数组中所有年龄的和:
// 方法一baseData.reduce((total, currentValue) => total + currentValue.age, 0);// 方法二baseData.reduce((previousValue, currentValue, index) => { console.log(index) if(typeof previousValue === 'number') { return previousValue + currentValue.age } else { return previousValue.age +