数组中获取最大值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)