JavascriptES6新特性之map和reduce详解

Irene ·
更新时间:2024-09-20
· 1015 次阅读

目录

说明

1.map()

代码示例:

2.reduce()

代码示例:

综合案例

总结

说明

ES6中,数组新增了map和reduce方法。

1.map()

map() :接收一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回。

代码示例:

有一个字符串数组,我们希望转为int数组

let arr = ['1', '20', '-5', '3']; console.log(arr) //传统写法 let newArr = arr.map(function(s) { return parseInt(s); }); console.log(newArr); //输出[1,20,-5,3] //箭头函数 let newArr2 = arr.map(s => parseInt(s)); console.log(newArr2) //输出[1,20,-5,3]

2.reduce()

reduce() :接收一个函数(必须)和一个初始值(可选),该函数接收两个参数。下面我们详细的来看一下:

函数原型:

reduce(callback, initialValue)

函数参数:

callback是上一次reduce处理的结果:

callback四个参数分别是: 上一次结果值、当前元素、当前索引、原数组

initialValue是数组中要处理的下一个元素

函数作用机制:

reduce() 会从左到右依次把数组中的元素用reduce处理,并把处理的结果作为下次reduce 的第一个参数。如果是第一次,会把前两个元素作为计算参数,或者把用户指定的初始值作为起始参数。

代码示例: let arr = ['1', '20', '-5', '3'] arr = arr.map(item => item*2); console.log(arr); let result = arr.reduce((a, b) => { console.log('上一次计算结果值: '+a); console.log('当前数值: '+b); console.log('当前return的值(a+b):'+(a+b)); return a+b; }, 100); console.log(result);

综合案例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ES6新特性学习-(9)-扩展运算符</title> </head> <body> <script> //ES6中,数组新增了map和reduce方法。 //1.map() :接收一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回。 //举例:有一个字符串数组,我们希望转为int数组 let arr = ['1', '20', '-5', '3']; console.log(arr) //传统写法 let newArr = arr.map(function(s) { return parseInt(s); }); console.log(newArr); //输出[1,20,-5,3] //箭头函数 let newArr2 = arr.map(s => parseInt(s)); console.log(newArr2) //输出[1,20,-5,3] // 2.reduce() :接收一个函数(必须)和一个初始值(可选),该函数接收两个参数: const arr = [1, 20, -5, 3] //此时a=1,b=20开始从左往右循环处理 let result1 = arr.reduce((a, b) => { return a + b; }); console.log(result1); //输出 19 //当有初始值传入的时候, a=1,b=1,开始从左往右循环处理 let result2 = arr.reduce((a, b) => { return a + b; }, 1) console.log(result2); //输出 20 </script> </body> </html> 总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注软件开发网的更多内容!  



reduce map

需要 登录 后方可回复, 如果你还没有账号请 注册新账号