本文實(shí)例講述了JS實(shí)現(xiàn)獲取數(shù)組中最大值或最小值功能。分享給大家供大家參考,具體如下:
方法一:
//最小值 Array.prototype.min = function(){ var min = this[0]; var len = this.length; for(var i=1; i<len; i++){ if(this[i] < min){ min = this[i]; } } return min; } console.log([55,38,7,19].min()); //最大值 Array.prototype.max = function(){ var max = this[0]; var len = this.length; for(var i=1; i<len; i++){ if(this[i] > max){ max = this[i]; } } return max; } console.log([55,38,7,19].max());
運(yùn)行結(jié)果:
如果引用了別的類庫(kù)進(jìn)行開發(fā),害怕類庫(kù)也用了同名的原型方法,可以在生成函數(shù)之前可以進(jìn)行重名判斷:
if(typeof Array.prototype['max'] == 'undefined'){ Array.prototype.max = function(){...} }
方法二:
//最小值 Math.min.apply(Math,arr); //等效于 Math.min.apply({},arr)和Math.min.apply(null,arr); //原本取得最小值的方法是Math.min(n1,n2,n3...), apply可以改變參數(shù)的傳入形式,第一個(gè)參數(shù)是什么都不是很重要 //最大值 var arr = [55,38,7,19]; console.log(Math.max.apply(Math,arr));
運(yùn)行結(jié)果:
多維數(shù)組可以先打散為一維數(shù)組再做以上處理。
var arr1 = [1,2,3,[5,6],[3,4,8]]; var arr2 = arr1.join(",").split(","); var a = Math.min.apply(Math,arr2); console.log(a);
運(yùn)行結(jié)果:
方法三:
var arr = [55,38,7,19]; function getMaxMin(arr,maxmin){ if(maxmin === "max"){ return Math.max.apply(Math,arr); }else if(maxmin === "min"){ return Math.min.apply(Math,arr); } } var a = getMaxMin(arr,"max"); console.log(a); var b = getMaxMin(arr,"min"); console.log(b);
運(yùn)行結(jié)果:
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容還可查看本站專題:《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript字符與字符串操作技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com