【问题标题】:Get variable name for math.max获取 math.max 的变量名
【发布时间】:2021-04-10 17:44:36
【问题描述】:

我正在尝试使用winner 获取变量。我要求最高的数字,但我如何得到 player / 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');
    
    });

提前致谢!

【问题讨论】:

  • 不要使用单独的变量。使用数组。
  • 那么在你得到最大值之后你就可以在数组中找到它的索引了。
  • 您不能在数组中使用key: value 表示法,只能在对象中使用。
  • 嗯。不明白你的意思。我仍然可以仅对数组使用答案功能吗?你介意展示它吗(新手;)如果它对你来说不麻烦的话。不管怎样,谢谢。
  • 啊,我知道你说的 key: value now 是什么意思了。

标签: jquery arrays variables math


【解决方案1】:

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

然后您可以使用来自here 的答案来获得最高值。


工作演示:

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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-13
    • 2016-03-30
    • 2015-01-27
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多