let ary = [1, 3, 5, 7, -2, 6, 20]
1.先升序排序,排序后,数组的第一项就是最小值
ary.sort(function(a,b){
return a - b; //升序排序(return b;降序排序)
})
let min = ary[0];
let max = ary[ary.length – 1];
//ps:也能够降序排取所由于0的第一项;
2.假想法
2.1 求最大值: 假定第一项就是最大值;
let max = ary[0];
for(let i = 1; i < ary.length ; i++ ){
//假如第二项大于第一项,就把第二项改成最大项;以此类推
if(ary[i] > max){
max = ary[i];
}
//三元运算符:ary[i] > max ? max = ary[i] : null;
}
console.log(max);
2.2 取最小值与求最大值同理:假定第一项为最大值;
let min= ary[0];
for(let i = 1; i < ary.length ; i++ ){
//假如第二项大于第一项,就把第二项改成最大项;以此类推
if(ary[i] < min){
min = ary[i];
}
//三元运算符:ary[i] < min ? min = ary[i] : null;
}
console.log(min);
3.Math.max()和Math.min() 要领;
Math.max() 从一堆数字中求出最大值;
Math.min() 从一堆数字中求出最小值;
思索:max 和 min要领都是吸收一个一个的参数,如今我们要求出数组中的最小值;有无什么要领;把数组变声一个一个的参数或许让max 和 min 吸收一个数组参数;
3.1 es6新增扩大运算符...对象
let max = Math.max(...ary);
let min = Math.min(...ary);
console.log(max);
console.log(min);
3.2 让 max 和 min 吸收一个数组用apply要领:
let max = Math.max.apply(null , ary);
let min = Math.min.apply(null,ary);
console.log(max);
console.log(min);
4.数组转成字符串,在运用eval()求值:
eval():作用是将字符串转变成js代码并实行;
4.1 将`Math.max(${aryStr})`传给eval();
let aryStr = ary.toString();
let max = eval(`Math.max(${aryStr})`);
let min = eval(`Math.min(${aryStr})`);
4.2 将eval(aryStr)传给Math.max和Math.min;
let aryStr = ary.toString();
let max = Math.max(eval(aryStr));
let min = Math.min(eval(aryStr));