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

Javascript 获取具有最高值的变量,并将该变量的名称插入到输入中,javascript,jquery,Javascript,Jquery,我将5个不同javascript变量中的值相加。完成后,我要做的是获取具有最高值的变量,并将该变量的名称插入到输入字段中。我所做的就是把变量的值加满,并记录最高变量的值。如何在输入字段中输入特定变量的名称 以下是我的javascript代码: bedrijfsman = 0; voorzitter = 0; innovator = 0; groepswerker = 0; vormer = 0; onderzoeker = 0; $('.form a.getval').click(

我将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与这个问题无关,所以我没有添加它。

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

var obj = { bedrijfsman:  bedrijfsman += $(this).data("bedrijfsman"),
            voorzitter:  voorzitter += $(this).data("voorzitter")}
然后,您可以遍历对象的键并找到具有最大值的键

例如,看看下面的代码片段

varobj={a:1,b:2,c:7,d:3};
var max=数字负无穷大;
var max_key=未定义;
for(obj中的var键){
如果(obj[键]>最大值)
{
最大键=键;
max=obj[key];
}
}

document.write(“最大值为:“+max_key+”,其值为:“+max”)我不知道如何将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);

这是一个不错的解决方案,但不要用-100000这样的任意数字初始化max。使用@vrmc您是正确的。我的错误。我纠正了它。谢谢