获取 math.max 的变量名称

Get variable name for math.max

提问人:mhouse 提问时间:1/5/2021 最后编辑:Besomhouse 更新时间:1/5/2021 访问量:336

问:

我正在尝试获取带有 .我要求最高的数字,但我如何得到相应的数字:winnerplayer / variable name

var A = 0;
var B = 0;
var C = 0;
var D = 0;
var E = 0;
var F = 0;
var G = 0;
var H = 0;


$('.answer').on('click', function (evt) {

     const types = $(this).data("typ").split(" "); // split on space.
     const active = $(this).is('.active');
     
     types.forEach(typ => { 
        if (active) {
          window[typ]--
    } else {
         window[typ]++
    }
  })
    console.log(A,B,C,D,E,F,G,H)
    $(this).toggleClass("active");
});


$('.fin').on('click', function (evt) {
    
    var players = ['playerA': A, 'playerB': B,'playerC': C,'playerD': D,'playerE': E,'playerF': F,'playerG': G, 'playerH': H];
    
    var winner = Math.max.apply(null, players );
    
    alert(winner, 'wins');
    
    });

提前致谢!

jQuery 数组变量 math

评论

0赞 Barmar 1/5/2021
不要使用单独的变量。使用数组。
0赞 Barmar 1/5/2021
然后,在获得最大值后,您可以在数组中找到其索引。
0赞 Barmar 1/5/2021
不能在数组中使用表示法,只能在对象中使用表示法。key: value
0赞 mhouse 1/5/2021
嗯。不知道你的意思。我还能只对数组使用 answer-function 吗?你介意展示它吗(新手;)如果这对您来说没有麻烦。无论哪种方式,谢谢。
0赞 mhouse 1/5/2021
啊,我知道你说的 key: value 是什么意思了。

答:

4赞 Oliver Trampleasure 1/5/2021 #1

您应该使用一个对象来存储带有播放名称的值(即 而不是使用 )。{}[]

然后,您可以使用此处的答案来获得最高值。


工作演示:

var A = 0;
var B = 1;
var C = 2;
var D = 3;
var E = 9;
var F = 5;
var G = 6;
var H = 7;


$('.fin').on('click', function (evt) {
     
    var players = {'playerA': A, 'playerB': B,'playerC': C,'playerD': D,'playerE': E,'playerF': F,'playerG': G, 'playerH': H};
    
    var winner = Object.keys(players).reduce(function(a, b){ return players[a] > players[b] ? a : b });

    
    alert(winner, 'wins');
    
    });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="fin">Fin</button>