请注意,我知道有像Math.max这样的库方法,我只想自己实现这个功能用于学习目的。
所以我可以通过循环来实现:
function largestNum(array) {
if (!array.length) {
return null;
}
var largest = array[0];
for (var i = 1; i < array.length; i++) {
if (array[i] > largest) {
largest = array[i];
}
}
return largest;
}
请注意,我需要存储上面数组的第一个元素。
function largestNum(arr) {
if (!arr.length) {
return null;
}
var largest = arr.shift();
// reduce is probably better than each here
arr.forEach(function(value) {
if (value > largest) {
largest = value;
}
});
return largest;
}
请注意,我需要通过移位获得第一个元素(尽管我可以使用切片)。在我看来,使用shift / slice可能会很昂贵,具体取决于实现。
使用函数式编程编写第二种方法的最简洁方法是什么?