javascript求最大值和最小值
Math.max
- 如果有任一參數(shù)不能被轉(zhuǎn)換為數(shù)值剧包,則結(jié)果為 NaN恐锦。
- max 是 Math 的靜態(tài)方法,所以應(yīng)該像這樣使用:Math.max()疆液,而不是作為 Math 實例的方法 (簡單的來說一铅,就是不使用 new )
- 如果沒有參數(shù),則結(jié)果為 -Infinity (注意是負(fù)無窮大)
Math.max(true, 0) // 1
Math.max(true, '2', null) // 2
Math.max(1, undefined) // NaN
Math.max(1, {}) // NaN
var min = Math.min();
var max = Math.max();
console.log(min > max); // true
1.0 for
循環(huán)
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);
2.0 reduce + for
var arr = [6, 4, 1, 8, 2, 11, 23];
function max(prev, next) {
return Math.max(prev, next);
}
console.log(arr.reduce(max));
3.0 reduce + Math
var arr = [6, 4, 1, 8, 2, 11, 23];
arr.sort(function(a,b){return a - b;});
console.log(arr[arr.length - 1])
4.0 apply
var arr = [6, 4, 1, 8, 2, 11, 23];
var max = eval("Math.max(" + arr + ")");
console.log(max)
5.0 eval
var arr = [6, 4, 1, 8, 2, 11, 23];
var max = eval("Math.max(" + arr + ")");
console.log(max)
6.0 Es6
var arr = [6, 4, 1, 8, 2, 11, 23];
console.log(Math.max(...arr))