Javascript獲取數(shù)組中的最大值和最小值的方法匯總
比較數(shù)組中數(shù)值的大小是比較常見(jiàn)的操作,比較大小的方法有多種,比如可以使用自帶的sort()函數(shù),下面來(lái)介紹如下幾種方法,代碼如下:
方法一:
//最小值
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;
}
//最大值
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;
}
如果你是引入類(lèi)庫(kù)進(jìn)行開(kāi)發(fā),害怕類(lèi)庫(kù)也實(shí)現(xiàn)了同名的原型方法,可以在生成函數(shù)之前進(jìn)行重名判斷:
if (typeof Array.prototype['max'] == 'undefined') {
Array.prototype.max = function() {
... ...
}
}
方法二:
用Math.max和Math.min方法可以迅速得到結(jié)果。apply能讓一個(gè)方法指定調(diào)用對(duì)象與傳入?yún)?shù),并且傳入?yún)?shù)是以數(shù)組形式組織的。恰恰現(xiàn)在有一個(gè)方法叫Math.max,調(diào)用對(duì)象為Math,與多個(gè)參數(shù)
Array.max = function( array ){
return Math.max.apply( Math, array );
};
Array.min = function( array ){
return Math.min.apply( Math, array );
};
但是,John Resig是把它們做成Math對(duì)象的靜態(tài)方法,不能使用大神最?lèi)?ài)用的鏈?zhǔn)秸{(diào)用了。但這方法還能更精簡(jiǎn)一些,不要忘記,Math對(duì)象也是一個(gè)對(duì)象,我們用對(duì)象的字面量來(lái)寫(xiě),又可以省幾個(gè)比特了。
Array.prototype.max = function(){
return Math.max.apply({},this)
}
Array.prototype.min = function(){
return Math.min.apply({},this)
}
[1,2,3].max()// => 3
[1,2,3].min()// => 1
方法三:
function getMaximin(arr,maximin)
{
if(maximin=="max")
{
return Math.max.apply(Math,arr);
}
else if(maximin=="min")
{
return Math.min.apply(Math, arr);
}
}
var a=[3,2,4,2,10];
var b=[12,4,45,786,9,78];
console.log(getMaximin(a,"max"));//10
console.log(getMaximin(b,"min"));//04
方法四:
var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a));//最小值
多維數(shù)組可以這么修改:
var a=[1,2,3,[5,6],[1,4,8]];
var ta=a.join(",").split(",");//轉(zhuǎn)化為一維數(shù)組
alert(Math.max.apply(null,ta));//最大值
alert(Math.min.apply(null,ta));//最小值
以上內(nèi)容是小編給大家分享的Javascript獲取數(shù)組中的最大值和最小值的方法匯總,希望大家喜歡。
- JS獲取數(shù)組最大值、最小值及長(zhǎng)度的方法
- 求js數(shù)組的最大值和最小值的四種方法
- javascript實(shí)現(xiàn)查找數(shù)組中最大值方法匯總
- JS實(shí)現(xiàn)獲取數(shù)組中最大值或最小值功能示例
- 分享JS數(shù)組求和與求最大值的方法
- JS中取二維數(shù)組中最大值的方法匯總
- JavaScript遍歷查找數(shù)組中最大值與最小值的方法示例
- JavaScript如何獲取數(shù)組最大值和最小值
- javascript實(shí)現(xiàn)數(shù)組最大值和最小值的6種方法
- js求數(shù)組最大值的八種具體實(shí)現(xiàn)方法
相關(guān)文章
js+css簡(jiǎn)單實(shí)現(xiàn)網(wǎng)頁(yè)換膚效果
這篇文章主要介紹了js+css簡(jiǎn)單實(shí)現(xiàn)網(wǎng)頁(yè)換膚效果的方法,涉及JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)遍歷及修改頁(yè)面元素樣式的相關(guān)技巧,需要的朋友可以參考下2015-12-12
通過(guò)實(shí)踐編寫(xiě)優(yōu)雅的JavaScript代碼
這篇文章主要介紹了如何通過(guò)實(shí)踐編寫(xiě)優(yōu)雅的JavaScript代碼。文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,下面我們來(lái)學(xué)習(xí)一下吧2019-05-05
關(guān)于Javascript模塊化和命名空間管理的問(wèn)題說(shuō)明
最近閑下來(lái)的時(shí)候,稍微想了想這個(gè)問(wèn)題。關(guān)于Javascript模塊化和命名空間管理2010-12-12
用IE重起計(jì)算機(jī)或者關(guān)機(jī)的示例代碼
本篇文章主要是對(duì)用IE重起計(jì)算機(jī)或者關(guān)機(jī)的實(shí)現(xiàn)代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-03-03
JavaScript操作 url 中 search 部分方法函數(shù)
這篇文章主要介紹了JavaScript操作 url 中 search 部分方法函數(shù)的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
laydate如何根據(jù)開(kāi)始時(shí)間或者結(jié)束時(shí)間限制范圍
這篇文章主要為大家詳細(xì)介紹了laydate根據(jù)開(kāi)始時(shí)間或者結(jié)束時(shí)間限制范圍的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
TypeScript中枚舉類(lèi)型的理解與應(yīng)用場(chǎng)景
如 TypeScript 官方文檔所說(shuō),枚舉類(lèi)型是對(duì) JavaScript 標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型集的擴(kuò)充,所以下面這篇文章主要給大家介紹了關(guān)于TypeScript中枚舉類(lèi)型的理解與應(yīng)用場(chǎng)景的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09

