Javascript 比较3个值-显示最高值

Javascript 比较3个值-显示最高值,javascript,jquery,Javascript,Jquery,在用户选择的地方进行调查: A B或C 然后,我需要知道用户是否主要选择了A、B或C 我尝试了一些jQuery逻辑,但由于表达式预期错误,运气不太好 是否有更简洁/更好的方法来显示哪个变量是最高的 我当前的jQuery: var count = 0; var count_a = 0; var count_b = 0; var count_c = 0; $('.radio-select').click(function() { var chosen_option = $(this).v

在用户选择的地方进行调查:

A B或C

然后,我需要知道用户是否主要选择了A、B或C

我尝试了一些jQuery逻辑,但由于表达式预期错误,运气不太好

是否有更简洁/更好的方法来显示哪个变量是最高的

我当前的jQuery:

var count = 0;
var count_a = 0;
var count_b = 0;
var count_c = 0;

$('.radio-select').click(function()
{

    var chosen_option = $(this).val();

    if(chosen_option == 'a')
    {
        count++;
        count_a ++;
    }

    if(chosen_option == 'b')
    {
        count++;
        count_b ++;
    }

    if(chosen_option == 'c')
    {
        count++;
        count_c ++;
    }

    check_numbers(count, count_a, count_b, count_c);

})

function check_numbers(count, a, b, c)
{

    parseInt(a);
    parseInt(b);
    parseInt(c);

    if(count == '8')
    {
        if ((a > b ) && (a > c))
        {
            alert("A is Highest");
        }

        if ((b > a ) && (b > c))
        {
            alert("B is Highest");
        }

        if(c > b) && (c > a))
        {
            alert("C is highest!");
        }
    }

}

您需要获取由
parseInt
返回的值。像这样使用:
a=parseInt(a)if…else

中的其他变量之前,对其他变量使用相同的代码>,如果您希望使用更小的方法,可以使用内联if语句。如果这是一种更好的方式,那就看你了,不过我还是喜欢

a = 5
b = 11
c = 6
console.log((a > b && a > c? a : (b > c ? b : c)))

首先,不需要对a、b、c使用parseInt(),因为它们已经是整数了。当您将count与字符串进行比较时,它也是一个整数。这应该行得通

if(count == 8)
{
    if ((a > b ) && (a > c))
    {
        alert("A is Highest");
    }

    else if ((b > a ) && (b > c))
    {
        alert("B is Highest");
    }

    else
    {
        alert("C is highest!");
    }

这里是check_numbers()的一个修改版本,如果我没弄错的话,它可以正常工作。我想说的一点是使用Math.max()从一组数字中找到最大的数字。

功能检查编号(计数、a、b、c){
如果(计数==8){
var numArray=[a,b,c];
var highest=Math.max.apply(null,numArray);
console.log(最高);
如果(最高===a){
log('a是最高的');
}否则如果(最高===b){
log('b是最高的');
}否则如果(最高===c){
log('c是最高的');
}
}
}
检查_编号(8、1、2、5);
检查_编号(8、5、2、1);

检查_编号(8、1、5、2) @ StubLeMeT,您可以考虑将值和标签添加到数组中,然后排序降序并返回顶部的标签。
function CompareIndexZero(a, b) {
   if (a[0] < b[0]) return 1;
   if (a[0] > b[0]) return -1;
   return 0;
 }

function myFunction() {
var count_a = 2;
var count_b = 5;
var count_c = 4;

var arrHighest = [];
arrHighest.push([count_a, "A"]);
arrHighest.push([count_b, "B"]);
arrHighest.push([count_c, "C"]);

arrHighest.sort(CompareIndexZero);

alert(arrHighest[0][1] + " is the highest");
}
函数比较索引零(a,b){
如果(a[0]b[0])返回-1;
返回0;
}
函数myFunction(){
var计数_a=2;
var计数_b=5;
var计数_c=4;
var=最高[];
arr.push([count_a,“a”]);
arr.push([count_b,“b”]);
arr.push([count_c,“c”]);
arr.sort(CompareIndexZero);
警报(最高[0][1]+“为最高”);
}

您是否也考虑到多个答案可能共享最高计数

我的2美分是:

var count = count_a = count_b = count_c = 0;

$('.radio-select').on('click', function() {
    var chosen_option = $(this).val();
    if (chosen_option == 'a') {
      count_a++;
    }
    else if (chosen_option == 'b') {
      count_b++;
    }
    else if (chosen_option == 'c') {
      count_c++;
    }
    if (++count == 8) {
      check_numbers(count_a, count_b, count_c);
    }
});

function check_numbers(a, b, c) {
  var highest = ((a > b && a > c) ? a : (b > c)? b : c),
      multiple = false,
      alertText = '';
  if (a == highest) {
    alertText += 'A';
  }
  if (b == highest) {
    if (alertText != '') {
      multiple = true;
      alertText += ' and ';
    }
    alertText += 'B';
  }
  if (c == highest) {
    if (alertText != '') {
      multiple = true;
      alertText += ' and ';
    }
    alertText += 'C';
  }
  alert(alertText + ' ' + (multiple ? 'are' : 'is') + ' highest!');
}

您可以与或共享代码示例吗?:)您可以添加html,您可以使用jqueryYou轻松实现这一点您可以根据元素的值选择元素,然后您可以获得值的计数并与更简单的方法进行比较注意,您可以缩短单击处理程序中的逻辑:请注意,Math.max()可以处理任意数量的值。是的,但是整个
parseInt
对我来说似乎是多余的。把那三条线去掉就行了。
var count = count_a = count_b = count_c = 0;

$('.radio-select').on('click', function() {
    var chosen_option = $(this).val();
    if (chosen_option == 'a') {
      count_a++;
    }
    else if (chosen_option == 'b') {
      count_b++;
    }
    else if (chosen_option == 'c') {
      count_c++;
    }
    if (++count == 8) {
      check_numbers(count_a, count_b, count_c);
    }
});

function check_numbers(a, b, c) {
  var highest = ((a > b && a > c) ? a : (b > c)? b : c),
      multiple = false,
      alertText = '';
  if (a == highest) {
    alertText += 'A';
  }
  if (b == highest) {
    if (alertText != '') {
      multiple = true;
      alertText += ' and ';
    }
    alertText += 'B';
  }
  if (c == highest) {
    if (alertText != '') {
      multiple = true;
      alertText += ' and ';
    }
    alertText += 'C';
  }
  alert(alertText + ' ' + (multiple ? 'are' : 'is') + ' highest!');
}