reduce()
1. reduce()是典型的函数式编程的方法,它不会改变原数组的元素,而是产生一个新的数组,几乎可以用reduce方法解决所有数组处理问题,filter和map方法都可当作是reduce的特殊实现,该方法类似于for循环,却不等同于for循环,是更加简洁的编程方式。
2. 接收两个参数: 第一个参数:function(a,b)
a:上一次reduce后的结果; b:原数组中的下一个元素;
第二个参数:初始值,可省略
有:a=初始值 ,b=arr[0] 无:a即初始值,b=arr[1]
3. 用法:
(1)users数组使用reduce方法,返回所有用户数组的和。
const users = [
{ name: 'John', age: 34 },
{ name: 'Amy', age: 20 },
{ name: 'camperCat', age: 10 }
];
const sumOfAges = users.reduce((sum, user) => sum + user.age, 0);
console.log(sumOfAges); //控制台将显示值 64。
(2)查看如何返回一个包含用户名称做为属性,其年龄做为值的对象。
const users = [
{ name: 'John', age: 34 },
{ name: 'Amy', age: 20 },
{ name: 'camperCat', age: 10 }
];
const usersObj = users.reduce((obj, user) => {
obj[user.name] = user.age;
return obj;
}, {});
console.log(usersObj); //将显示值 { John: 34, Amy: 20, camperCat: 10 }。