<script>
// 举个例子
function sum(x) {
return x+1;
}
function add(a, b,f) {
var c=f(a)+f(b)
console.log("c的值为:"+c);
}
//给add函数传参
add(3,6,sum);
// 这里的f相当于为
// var f=function sum(x) {
// return x+1;
// }
// Map
function sum(x) {
return x+2;
}
var arr=[1,2,3,4,5];
var newArray=arr.map(sum);//这里sum函数在这里当作参数
console.log(newArray);//[3,4,5,6,7]
//解释由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,
// 传入我们自己的函数,就得到了一个新的Array作为结果
// 省略的中间过程,可以减少一个遍历过程
// 把arr.map(sum)理解为,将里面的参数当作一种运算规则,将arr数组中的元素加入到这种运算规则中去进行运算
// 例如:
var newArray1=arr.map(String);//将上面的数组中的元素满足String这个规则中,可以全部转换为字符串
console.log(newArray1);//['1', '2', '3', '4', '5']
// reduce的用法
// Array的reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算,相对于对数列求和
// 把前两次相加的和当作参数,再和第三个元素相加,依次类推,直到遍历完所有的元素。
// 写一下这个函数
function f(x,y) {
return x+y;
}
var arr2=[1,2,3,4,5];
var newArray2=arr2.reduce(f)//这里把f函数当作参数,将arr中的元素放入到f函数中去
// 打印一下
console.log("newArray2="+newArray2);//newArray2=15,满足1+2+3+4+5=15
// 比较一下他们的不同
// arr.map(sum); //map()方法返回的是一个新数组,原数组不变
// arr.reduce(f);//reduce()方法返回的是一个值,原数组不变
</script>
标签:map,arr,进阶,sum,javascript,reduce,var,函数 From: https://blog.csdn.net/m0_74762754/article/details/139562070