方法: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如何求最大值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...

在JavaScript中如何獲取原型鏈上函數的參數在JavaScript編程中,理解和操作原型鏈上的函數參數是常見且重要的任�...

在微信小程序web-view中使用Vue.js動態style位移失效的原因分析在使用Vue.js...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用

Atom編輯器mac版下載
最受歡迎的的開源編輯器