JavaScript高阶函数map/reduce

1.map 实现x2


function pow(x) {

return x*x

}

var arr = [1,2,3,4,5,6,7,8,9]

arr.map(pow)

由于map()方法定义在JavaScript的Array中,我们调用Arraymap()方法,传入我们自己的函数,就得到了一个新的Array作为结果:


2.map将array中的数字转换成字符串

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.map(String); // ['1', '2', '3', '4', '5', '6', '7', '8', '9']
3.reduce

Array的reduce()把一个函数作用在这个Array[x1, x2, x3...]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算,其效果就是:

[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
4.reduce()求积

'use strict';

function product(arr) {

var ret = arr.reduce(function(x,y){
return x*y
})   
  return ret;

}


var arr = [1,2,3,4,5]

product(arr)

5.利用map和reduce操作实现一个string2int()函数

'use strict';

function string2int(s) {
var arr = s.split('')   // 字符串转换成数组
var arr2 = arr.map(function(data) {
return +data       //js弱类型转换,将数组字符串元素转换成数字
})
console.log(arr2)
var ret = arr2.reduce(function(x,y) {
return x * 10 + y
})
  return ret;

}

// 测试:
if (string2int('0') === 0 && string2int('12345') === 12345 && string2int('12300') === 12300) {
    if (string2int.toString().indexOf('parseInt') !== -1) {
        alert('请勿使用parseInt()!');
    } else if (string2int.toString().indexOf('Number') !== -1) {
        alert('请勿使用Number()!');
    } else {
        alert('测试通过!');
    }
}
else {
    alert('测试失败!');
}

猜你喜欢

转载自blog.csdn.net/m0_37293343/article/details/78499536