Javascript 比较3个值-显示最高值
在用户选择的地方进行调查: A B或C 然后,我需要知道用户是否主要选择了A、B或C 我尝试了一些jQuery逻辑,但由于表达式预期错误,运气不太好 是否有更简洁/更好的方法来显示哪个变量是最高的 我当前的jQuery: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
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!');
}