【算法图解|4】JavaScript 如何求数组的最大值和最小值

86 阅读1分钟

取出数组中的最大值或者最小值是开发中常见的需求

最原始的方法,莫过于循环遍历一遍:

var arr = [6, 4, 1, 8, 2, 11, 23];

var result = arr[0];
for (var i = 1; i < arr.length; i++) {
    result =  Math.max(result, arr[i]);
}
console.log(result);

通过遍历数组求出一个最终值,我们就可以使用 reduce 方法:

var arr = [6, 4, 1, 8, 2, 11, 23];

function max(prev, next) {
    return Math.max(prev, next);
}
console.log(arr.reduce(max));

如果我们先对数组进行一次排序,那么最大值就是最后一个值,最小值就是第一个值:

var arr = [6, 4, 1, 8, 2, 11, 23];

arr.sort(function(a,b){return a - b;});
console.log(arr[arr.length - 1])

求最大值最小值?

var arr = [6, 4, 1, 8, 2, 11, 23];
console.log(Math.max.apply(null, arr))