這篇文章主要講解了“怎么用JavaScript求最大值”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么用JavaScript求最大值”吧!
方法:1、使用“Math.max()”函數求最大值,可返回兩個指定的數中帶有較大的值的那個數;2、使用遞歸函數求最大值;3、使用for循環遍歷求最大值;4、使用“Math.max.apply(null,[值,值,值,值..)”語句求最大值。
本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
Math.max
JavaScript 提供了 Math.max 函數返回一組數中的最大值,用法是:
Math.max([value1[,value2, ...]])
值得注意的是:
如果有任一參數不能被轉換為數值,則結果為 NaN。
max 是 Math 的靜態方法,所以應該像這樣使用:Math.max(),而不是作為 Math 實例的方法 (簡單的來說,就是不使用 new )
如果沒有參數,則結果為 -Infinity (注意是負無窮大)
而我們需要分析的是:
1.如果任一參數不能被轉換為數值,這就意味著如果參數可以被轉換成數字,就是可以進行比較的,比如:
Math.max(true, 0) // 1 Math.max(true, '2', null) // 2 Math.max(1, undefined) // NaN Math.max(1, {}) // NaN
2.如果沒有參數,則結果為 -Infinity,對應的,Math.min 函數,如果沒有參數,則結果為 Infinity,所以:
var min = Math.min(); var max = Math.max(); console.log(min > max);
了解了 Math.max 方法,我們以求數組最大值的為例,思考有哪些方法可以實現這個需求。
原始方法
最最原始的方法,莫過于循環遍歷一遍:
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
既然是通過遍歷數組求出一個最終值,那么我們就可以使用 reduce 方法:
var arr = [6, 4, 1, 8, 2, 11, 23]; function max(prev, next) { return Math.max(prev, next); } console.log(arr.reduce(max));
apply
使用 apply 是另一種。
var arr = [6, 4, 1, 8, 2, 11, 23]; console.log(Math.max.apply(null, arr))
ES6 …
使用 ES6 的擴展運算符:
var arr = [6, 4, 1, 8, 2, 11, 23]; console.log(Math.max(...arr))
使用遞歸函數
var arr = [9,8,55,66,49,68,109,55,33,6,2,1]; var max = arr[0]; function findMax( i ){ if( i == arr.length ) return max; if( max < arr[i] ) max = arr[i]; findMax(i+1); } findMax(1); console.log(max);
使用 for 循環遍歷
var arr = [9,8,55,66,49,68,109,55,33,6,2,1]; var max = arr[0]; for(var i = 1; i < arr.length; i++){ if( max < arr[i] ){ max = arr[i]; } } console.log(max);
使用apply將數組傳入max方法中直接返回
Math.max.apply(null,[9,8,55,66,49,68,109,55,33,6,2,1])
除此之外,還有很多數組排序方式,都可以在排序后,根據新數組索引值獲取 最大/最小 值。
var a=[1,2,3,5]; console.log(Math.max.apply(null, a));//最大值 console.log(Math.min.apply(null, a));//最小值
多維數組可以這么修改:
var a=[1,2,3,[5,6],[1,4,8]]; var ta=a.join(",").split(",");//轉化為一維數組 console.log(Math.max.apply(null,ta));//最大值 console.log(Math.min.apply(null,ta));//最小值
感謝各位的閱讀,以上就是“怎么用JavaScript求最大值”的內容了,經過本文的學習后,相信大家對怎么用JavaScript求最大值這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。