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

Javascript 我们如何比较三个整数来找出哪个更大/更小?,javascript,variables,comparison,Javascript,Variables,Comparison,比如,;我们有三个变量: var a = 11; var b = 23; var c = 8; 我们可以返回最大/最小值的变量名吗 Math.max(a, b, c) 如果数组中的项目数可变: var arr = [a, b, c]; Math.max.apply(null, arr); 如果数组中的项目数可变: var arr = [a, b, c]; Math.max.apply(null, arr); 您可能需要使用对象或数组来知道变量的名称: var obj = { 'a

比如,;我们有三个变量:

var a = 11;
var b = 23;
var c = 8;
我们可以返回最大/最小值的变量名吗

Math.max(a, b, c)
如果数组中的项目数可变:

var arr = [a, b, c];
Math.max.apply(null, arr);
如果数组中的项目数可变:

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

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

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;

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

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;

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

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"] 


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

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

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';
}
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"] 


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

如果您可以获得变量
name
,您将如何处理所述
name
?知道变量的名称真的很重要吗?不,不重要。也许我可以把它用在求值函数中。但无论如何,我可以不使用它。如果你只需要一个最大值或最小值,那么这就是你所需要的。如果你需要知道变量的名称,那么看起来你做错了什么,或者你最好使用一个带有名称/值对的查找对象,而不是
var a,b,c
。如果您可以获得变量
名称
,您会如何处理所说的
名称
?知道变量名称真的很重要吗?不,不太重要。也许我可以把它用在求值函数中。但无论如何,我可以不使用它。如果你只需要一个最大值或最小值,那么这就是你所需要的。如果你需要知道变量的名称,那么看起来你做错了什么,或者你最好使用一个带有名称/值对的查找对象,而不是
var a,b,c。他想要我想的变量名,即“b”。他想要我想的变量名,即“b”。
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';
}