现在数组中的最大值和最小值越来越大,所以我已经编译了一个供大家使用的
方法。如果你能和我联系一个问题,我们会一起
学习进步的。
让我们看一个例子:
无功numreg = / ^ - { } + { 0-9 0-9。} * $ /
array.prototype.min =
函数(){
返回this.reduce(
功能(预测值,curvalue,索引数组){
如果(numreg.test(预测值)numreg.test(curvalue)){
收益预测值> curvalue curvalue:预测值;
} else if(numreg.test(预测值)){
收益预测值;
} else if(numreg.test(curvalue)){
返回curvalue;
{人}
返回0;
}
})
}
array.prototype.max =函数(){
返回this.reduce(功能(预测值,curvalue,索引数组){
如果(numreg.test(预测值)numreg.test(curvalue)){
收益预测值< curvalue curvalue:预测值;
} else if(numreg.test(预测值)){
收益预测值;
} else if(numreg.test(curvalue)){
返回curvalue;
{人}
返回0;
}
})
}
例二:
功能getmaximin(ARR,maximin){
如果(maximin = = max){
返回math.max.apply(数学,ARR);
} else if(maximin = = min){
返回math.min.apply(数学,ARR);
}
}
var a = { 3,2,4,2,10 }
var b = { 12,445786,9,78 }
警报(AMAX:+ getmaximin(A,Max)+ ---阿明:+ getmaximin(一分钟)+ --- + getmaximin Bmax:(--- Bmax:,+)(+)+(+)+(
功能getmaximin(ARR,maximin){
如果(maximin = = max){
返回math.max.apply(数学,ARR);
} else if(maximin = = min){
返回math.min.apply(数学,ARR);
}
}
var a = { 3,2,4,2,10 }
var b = { 12,445786,9,78 }
警报(AMAX:+ getmaximin(A,Max)+ ---阿明:+ getmaximin(一分钟)+ --- + getmaximin Bmax:(--- Bmax:,+)(+)+(+)+(
让我们看2种方法。
方法1:
最小值
array.prototype.min =函数(){
VaR最小=这{ 0 };
VaR len = this.length;
对于(var i = 1;i < i;i + +){
如果(此{ } <分钟){
min =这个{ };
}
}
返回min;
}
最大值
array.prototype.max =函数(){
var =这个{ 0 };
VaR len = this.length;
对于(var i = 1;i < i;i + +){
如果(这个{ max max max){
马克斯=这个{ };
}
}
返回最大值;
}
如果把你
介绍给库开发,库也实现了一个原型方法,怕同名,在生成函数判断之前也可以一样:
如果(typeof阵列。原型{ 'max} = = 'undefined){
array.prototype.max =函数(){
…
}
}
方法二:
结果可以很快利用math.max和math.min方法获得的。申请允许方法指定调用对象和传入的
参数,和传入的参数是由数组。现在,有一种方法称为math.max,调用对象的数学,多参数
array.max =函数(数组){
返回math.max.apply(数学、阵列);
};
array.min =函数(数组){
返回math.min.apply(数学、阵列);
};
然而,John Resig是把数学对象的静态方法,而不能称为神所最喜欢的链。但这种方法可以更为精简,不要忘记,数学的对象是一个对象,我们使用写对象字面量,并能节省几位。
array.prototype.max =函数(){
返回math.max.apply({ },这个)
}
array.prototype.min =函数(){
返回math.min.apply({ },这个)
}
({1,2,3}。max) / / = > 3
({1,2,3}。min) / / = > 1