我在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与此问题无关,所以我没有添加它。
答案 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);