JavascriptES6新特性之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中Number.NEGATIVE_INFINITY值的使用详解
这篇文章主要介绍了JavaScript中Number.NEGATIVE_INFINITY值的使用,是JS入门学习中的基础知识,需要的朋友可以参考下2015-06-06
javascript input图片上传及预览,FileReader预览图片
本文放置了html完成代码案例,有需要大家可以直接复制测试功能,采用input文本框图片上传,使用FileReader预览图片效果2021-06-06
javascript中substr,substring,slice.splice的区别说明
某些情况下,负数的参数不识别.所以尽量不要用负数作参数.免得浏览器不兼容,造成程序的出错.2010-11-11
JavaScript中用getDate()方法返回指定日期的教程
这篇文章主要介绍了JavaScript中用getDate()方法返回指定日期的教程,是JS入门学习中的基础知识,需要的朋友可以参考下2015-06-06


最新评论