最简洁的功能方式,在javascript中找到最大的数字

时间:2015-10-20 23:34:56

标签: javascript functional-programming

请注意,我知道有像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可能会很昂贵,具体取决于实现。

使用函数式编程编写第二种方法的最简洁方法是什么?

0 个答案:

没有答案