Javascript 返回具有变量名称的值

Javascript 返回具有变量名称的值,javascript,variables,Javascript,Variables,此代码返回3。我需要一个结果,不仅要有计算值,还要有一个变量名 所需输出:c-3。如果您可以在对象中存储这些值,则可以在存储键名称的同时循环键并比较它们的值 var a = 1; var b = 2; var c = 3; var d = Math.max(a, b, c); return d; var值={a:1,b:2,c:3} var-maxName; var-max; forvar输入值{ ifmax==未定义的| | max!max&&pair | | pair[1]>max[1

此代码返回3。我需要一个结果,不仅要有计算值,还要有一个变量名


所需输出:c-3。

如果您可以在对象中存储这些值,则可以在存储键名称的同时循环键并比较它们的值

var a = 1;
var b = 2;
var c = 3;

var d = Math.max(a, b, c);
return d;
var值={a:1,b:2,c:3} var-maxName; var-max; forvar输入值{ ifmax==未定义的| | max<值[键]{ maxName=键; 最大值=值[键]; } }
log'Max:'+maxName+'-'+值[maxName] 如果可以将这些值存储在对象中,则可以在存储键名称的同时循环键并比较它们的值

var a = 1;
var b = 2;
var c = 3;

var d = Math.max(a, b, c);
return d;
var值={a:1,b:2,c:3} var-maxName; var-max; forvar输入值{ ifmax==未定义的| | max<值[键]{ maxName=键; 最大值=值[键]; } }
log'Max:'+maxName+'-'+值[maxName] 不幸的是,在JavaScript中不容易检索变量名

这样的解决方案也不可扩展

但是,对您利用的数据结构进行调整可以解决这一问题

在下面的示例中,请注意和的用法

//成对的。 常数对={ 答:1,, b:2, c:3 } //找Max Pair。 const getmaxpair=pairs=>Object.entriespairs.reducemax,pair=>!max&&pair | | pair[1]>max[1]?配对:马克斯,错 //马克斯对。 常量[key,value]=getMaxPairPairPairs //日志。
log'max pair:',`${key}${value}`//c3不幸的是,变量名在JavaScript中不容易检索

这样的解决方案也不可扩展

但是,对您利用的数据结构进行调整可以解决这一问题

在下面的示例中,请注意和的用法

//成对的。 常数对={ 答:1,, b:2, c:3 } //找Max Pair。 const getmaxpair=pairs=>Object.entriespairs.reducemax,pair=>!max&&pair | | pair[1]>max[1]?配对:马克斯,错 //马克斯对。 常量[key,value]=getMaxPairPairPairs //日志。
log'max pair:',`${key}${value}`//c3您可以使用javascript对象或映射轻松地完成此操作

var values = { a: 1, b: 2, c: 3 }

var maxName;
var max;
for(var key in values) {
  if(max === undefined || max < values[key]){
    maxName = key;
    max = values[key];
  }
}

console.log('Max: ' + maxName + ' - ' + values[maxName]);
下面是进行反向查找的另一种方法
希望这对您有所帮助

您可以使用javascript对象或映射轻松实现这一点

var values = { a: 1, b: 2, c: 3 }

var maxName;
var max;
for(var key in values) {
  if(max === undefined || max < values[key]){
    maxName = key;
    max = values[key];
  }
}

console.log('Max: ' + maxName + ' - ' + values[maxName]);
下面是进行反向查找的另一种方法
希望这对您有所帮助

尽管使用地图可以更容易地实现这一点,但请在实际用例中查看其他答案。 你所要求的实际上也可能是从

设a=1; 设b=2; 设c=3; 设d=Math.maxa,b,c; 让varToString=varObj=>Object.keysvarObj[0]; 如果a==d{ console.logvarToString{a},d } 如果b==d{ console.logvarToString{b},d } 如果c==d{ console.logvarToString{c},d
} 虽然使用地图可以更容易地实现这一点,但请在实际用例中查看其他答案。 你所要求的实际上也可能是从

设a=1; 设b=2; 设c=3; 设d=Math.maxa,b,c; 让varToString=varObj=>Object.keysvarObj[0]; 如果a==d{ console.logvarToString{a},d } 如果b==d{ console.logvarToString{b},d } 如果c==d{ console.logvarToString{c},d
} 虽然您所想到的魔术在某种程度上可以通过迭代对象键来实现,如其他答案所示,但通常您只需要一个对象数组,其中键是已知的,值是不同的:

var人员=[ {姓名:约翰,年龄:52}, {姓名:简,年龄:35}, {姓名:彼得,年龄:86}, {姓名:苏珊,年龄:72} ]; var eldest=人[0]; persons.forEachfunctionperson{ 如果person.age>eldest.ageeldest=person; };
主控台,罗格尔德 虽然您所想到的魔术在某种程度上可以通过迭代对象键来实现,如其他答案所示,但通常您只需要一个对象数组,其中键是已知的,值是不同的:

var人员=[ {姓名:约翰,年龄:52}, {姓名:简,年龄:35}, {姓名:彼得,年龄:86}, {姓名:苏珊,年龄:72} ]; var eldest=人[0]; persons.forEachfunctionperson{ 如果person.age>eldest.ageeldest=person; };
主控台,罗格尔德;这…不像看起来那么容易或可能,伙计!使用指针/对象会容易10倍!你有没有机会把这个移到C++?这…不像看起来那么容易或可能,伙计!使用指针/对象会容易10倍!你有没有机会把这个移到C++?