确定javascript中的最大变量?

时间:2011-08-10 15:29:16

标签: javascript jquery

假设我有以下变量:

int currentCreated = 94.6;
int averageCreated = 80.1;
int currentAssigned = 78.9;
int averageAssigned = 81.3;

如何确定最大变量?我的意思是,我可以使用Math.max轻松完成数字,但我对最大值变量名感兴趣。

谢谢!

4 个答案:

答案 0 :(得分:4)

如果要检查值和实际名称本身,最好的选择可能是使用关联数组或对象,并检查键的长度及其值。我无法立即想到任何其他方法来实现这一目标。

示例:

var numbers = {
  currentCreated:  94.6,
  averageCreated:  80.1,
  currentAssigned: 78.9,
  averageAssigned: 81.3
};

for ( e in numbers ) 
  console.log( e.length + ' ' + numbers[e] );

答案 1 :(得分:1)

哦,好吧,只是为了娱乐。

function max(context){
    var m = Math.max.apply(null, Array.prototype.slice.call(arguments, 1)),
        n = null;

    Object.keys( context ).some(function( prop ) {
        if( window[prop] === m ) {
            n = prop; return true;
        }

         return false;
    });


    return [n,m];
}

var foo = 5,
    bar = 11,
    baz = -2;

max(this, foo,bar,baz); // ['bar', 11]

答案 2 :(得分:1)

尽管回答这个问题已经很晚了,但是如果这对将来的某些人有帮助,我想分享我最近在处理类似情况时找到的解决方案:

var age1 = 32,
    age2 = 24,
    age3 = 34,
    age4 = 19;

var ages = [age1, age2, age3, age4],
    maxAge = Math.max.apply(Math.max, ages),
    ageNames = ["age1", "age2", "age3", "age4"],
    maxAgeName = ageNames[ages.indexOf(maxAge)];

我知道,变量名称可能更好,但这只是为了说明。

答案 3 :(得分:-1)

if(currentCreated>averageCreated && currentCreated>currentAssigned && currentAssigned>averageAssigned){//currentCreated is biggest}

每个人都这样做瞧!