获取具有最高值的变量,并将该变量的名称插入到输入中

时间:2015-02-01 21:06:10

标签: javascript jquery

我在5个不同的javascript变量中添加值。完成此操作后我要做的是获取具有最高值的变量,并将该变量的名称插入到输入字段中。我设法做的是充值变量的值并记录最高变量的值。如何将特定变量的名称放在输入字段中?

这是我的javascript代码:

bedrijfsman = 0;
voorzitter = 0;
innovator = 0;
groepswerker = 0;
vormer = 0;
onderzoeker = 0;

$('.form a.getval').click(
         function () {
         $( "input[type=checkbox]:checked" ).each(function(){
            bedrijfsman = bedrijfsman + $(this).data("bedrijfsman");
            voorzitter = voorzitter + $(this).data("voorzitter");
            innovator = innovator + $(this).data("innovator");
            groepswerker = groepswerker + $(this).data("groepswerker");
            vormer = vormer + $(this).data("vormer");
            onderzoeker = onderzoeker + $(this).data("onderzoeker");
         });
         console.log(Math.max(bedrijfsman,voorzitter,innovator,groepswerker,vormer,onderzoeker));
         }
     );

我认为这个问题的HTML与此问题无关,所以我没有添加它。

2 个答案:

答案 0 :(得分:3)

您可以创建一个对象文字,其中包含变量名称和键值作为键:

var obj = { bedrijfsman:  bedrijfsman += $(this).data("bedrijfsman"),
            voorzitter:  voorzitter += $(this).data("voorzitter")}

然后你可以浏览对象的键并找到具有最大值的键。

例如,请查看以下代码段。

var obj = { a: 1, b:2, c:7, d:3 };

var max= Number.NEGATIVE_INFINITY;
var max_key=undefined;

for(var key in obj){
  if(obj[key] > max)
  {
      max_key = key;
      max = obj[key];
  }
}

document.write("The key with the maximum value is: "+max_key+" whose value is: "+max);

答案 1 :(得分:0)

我知道无法在javascript中将普通变量的名称作为字符串。如果变量名称始终相同,并且如果您不想使用对象或数组,则可以采用不具吸引力的方式:

var varName;
var maxVal = Math.max(bedrijfsman,voorzitter,innovator,groepswerker,vormer,onderzoeker);

if(bedrijfsman == maxVal) varName = 'bedrijfsman';
if(voorzitter == maxVal) varName = 'voorzitter';
if(innovator == maxVal) varName = 'innovator';
if(groepswerker == maxVal) varName = 'groepswerker';
if(vormer == maxVal) varName = 'vormer';
if(onderzoeker == maxVal) varName = 'onderzoeker';

$('#idOfInput').val(varName);