本文小编为大家详细介绍“Javascript中怎么使用ES6的map和reduce”,内容详细,步骤清晰,细节处理妥当,希望这篇“Javascript中怎么使用ES6的map和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>
读到这里,这篇“Javascript中怎么使用ES6的map和reduce”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。