JavaScript 高阶函数reduce
2017-06-16 本文已影响0人
Molly6943
用法:
Array
的reduce()
把一个函数作用在这个Array的[x1, x2, x3...]
上,这个函数必须接收两个参数,reduce()
把结果继续和序列的下一个元素做累积计算,其效果就是:
[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
比方说对一个Array求和,就可以用reduce实现:
var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {
return x + y;
}); // 25
练习:
查找数组中数字最多的数字。如果参数数组中的两个数字具有相同的长度,则返回数组中的第一个。
function findLongest(array){
return array.reduce((res, curr) => (String(res).length < String(curr).length) ? curr : res);
}
findLongest([1, 10, 100]) //100