zoukankan      html  css  js  c++  java
  • 获取数组中 最大值 和 最小值

    方法一:

    //最小值

    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;

    }

    如果你是引入类库进行开发,害怕类库也实现了同名的原型方法,可以在生成函数之前进行重名判断:

    if (typeof Array.prototype['max'] == 'undefined') {

    Array.prototype.max = function() {

    ... ...

    }

    }

    方法二:

    用Math.max和Math.min方法可以迅速得到结果。apply能让一个方法指定调用对象与传入参数,并且传入参数是以数组形式组织的。恰恰现在有一个方法叫Math.max,调用对象为Math,与多个参数

    Array.max = function( array ){

    returnMath.max.apply( Math, array );

    };

    Array.min = function( array ){

    returnMath.min.apply( Math, array );

    };

    但是,John Resig是把它们做成Math对象的静态方法,不能使用大神最爱用的链式调用了。但这方法还能更精简一些,不要忘记,Math对象也是一个对象,我们用对象的字面量来写,又可以省几个比特了。

    Array.prototype.max = function(){

    returnMath.max.apply({},this)

    }

    Array.prototype.min = function(){

    returnMath.min.apply({},this)

    }

    [1,2,3].max()// => 3

    [1,2,3].min()// => 1

     

    方法三:

    functiongetMaximin(arr,maximin)

    {

    if(maximin=="max")

    {

    returnMath.max.apply(Math,arr);

    }

    elseif(maximin=="min")

    {

    returnMath.min.apply(Math, arr);

    }

    }

    vara=[3,2,4,2,10];

    varb=[12,4,45,786,9,78];

    console.log(getMaximin(a,"max"));//10

    console.log(getMaximin(b,"min"));//04

     

    方法四:

    vara=[1,2,3,5];

    alert(Math.max.apply(null, a));//最大值

    alert(Math.min.apply(null, a));//最小值

    多维数组可以这么修改:

    vara=[1,2,3,[5,6],[1,4,8]];

    varta=a.join(",").split(",");//转化为一维数组

    alert(Math.max.apply(null,ta));//最大值

    alert(Math.min.apply(null,ta));//最小值

  • 相关阅读:
    48. Rotate Image
    47. Permutations II
    46. Permutations
    45. Jump Game II
    44. Wildcard Matching
    43. Multiply Strings
    42. Trapping Rain Water
    41. First Missing Positive
    40. Combination Sum II
    39. Combination Sum
  • 原文地址:https://www.cnblogs.com/volodya/p/10212606.html
Copyright © 2011-2022 走看看