我们如何比较三个整数来找出哪个更大/更小?

时间:2014-05-08 16:18:12

标签: javascript variables comparison

例如;我们有三个变量:

var a = 11;
var b = 23;
var c = 8;

我们可以返回最大/最小值的变量名吗?

4 个答案:

答案 0 :(得分:2)

Math.max(a, b, c)

如果数组中的项目数量可变:

var arr = [a, b, c];
Math.max.apply(null, arr);

答案 1 :(得分:2)

您可能需要使用对象或数组来了解变量的名称:

var obj = {
    'a':11,
    'b':23,
    'c':8
};

var biggest = '';
for (var name in obj) {
    if(biggest !== '' && obj[name] > obj[biggest]) {
        biggest = name;
    } else if (biggest === '') {
        biggest = name;
    }
}
return biggest;

答案 2 :(得分:0)

如果它是您需要的最小值和最大值的变量名称,那么使用ECMA5方法可以执行类似的操作。您需要使用object来获取名称而不是单个变量。

的Javascript

function getNamesSmallestToLargestByValue(thisObj) {
    return Object.keys(obj).map(function (name) {
        return [name, this[name]];
    }, thisObj).sort(function (x, y) {
        return x[1] - y[1];
    }).map(function (element) {
        return element.shift();
    });
}

var obj = {
        'a': 11,
        'b': 23,
        'c': 8
    };

console.log(getNamesSmallestToLargestByValue(obj));

输出

["c", "a", "b"] 

jsFiddle

如您所见,返回的数组将为您提供按其关联值从最小到最大排序的名称。因此,第一个元素是最小值的名称,最后一个元素是最大值的名称。

答案 3 :(得分:0)

var x = parseInt(document.getElementById('sco').value);

var y = parseInt(document.getElementById('sce').value);

var z = parseInt(document.getElementById('scm').value);

if (x > y && x > z)
{
document.getElementById('yo').innerHTML = 'x is greater';
}

else if (y > x && y > z){
document.getElementById('yo').innerHTML = 'y is greater';
}

else{
document.getElementById('yo').innerHTML = 'z is greater';
}