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