数组中获取最大值or最小值的问题

数组中获取最大值or最小值的问题

1.排序法
ary = [1,9,8,3,29,90,10];
ary.sort(function(a,b){
    return a-b;
})
var min = ary[0];
var max = ary[ary.length -1];
console.log(min,max);
2.使用Math中 max / min 方法实现
var ary = [1,9,8,3,29,90,10];
var max = Math.max.apply(null,ary);
var min = Math.min.apply(null,ary);
console.log(min, max);
3.字符串拼接后调用eval方法
var ary = [1,9,8,3,29,90,10];
var max = eval("Math.max(" + ary.toString() + ")");
var min = eval("Math.min(" + ary.toString() + ")");
console.log(min, max);

eval:把一个字符串变成为JS表达式执行

eval("1 + 2")    // 3
4. 假设法:假设数组中第一个值是最大值,和后面的依此比较,如果后面的某个值比假设的还要大,说明假设错了;把假设的值替换掉
var ary = [1,9,8,3,29,90,10];
var max = ary[0],min = ary[0];
for (var i = 1; i < ary.length; i++){
    var cur = ary[i];
    cur > max ? max = cur : null;
    cur < min ? min = cur : null;
}
console.log(min,max)

你可能感兴趣的:(数组中获取最大值or最小值的问题)