2016-05-23 7 views
0

Ich habe mehrere Variablen mit einigen Werten zugewiesen. Für die Ex:Angularjs erhalten Variablenname mit höchstem Wert

Gain_weight = 0,01 Gain_weather = 0,02

und einige davon. Jetzt möchte ich den Variablennamen mit dem höchsten zugewiesenen Wert erhalten.

Wenn ich so etwas mache, gibt es den Wert nicht den Namen zurück.

var rootNode = Math.max(Gain_weight,Gain_smoking,Gain_exercising,Gain_foodhabits,Gain_parent_heartattack, 
      Gain_alcohol,Gain_occupation,Gain_workinghrs); 

Also statt Wert, wie kann ich den höchsten Wert zugewiesene Zeichenfolge erhalten?

+0

http://stackoverflow.com/questions/27376295/getting-key-with-the-highest-value-from-object – apieceofbart

+0

Warum brauchen Sie das, was ist der Anwendungsfall? Es ist nicht möglich, einen Variablennamen programmatisch so zu erhalten, wie Sie es hier vorschlagen – nem035

Antwort

1

Nach Überprüfung dieser question scheint es möglicherweise nicht möglich, den Namen zu erhalten.

Ein Weg kann um entweder mit einem object oder ein assoziatives Array mit Namen wie gleiche von Variablennamen und es ist Wert als Variablenwert

Hope this Snippet

// Array with name value pair 
var _myDemoArray = [ 
{name:'Gain_weight', 
value:0.01}, 
{name:'Gain_weather', 
value:0.02}] 

// sort the array in descending order to get the element with maximum value. 
var _getSortedElem = _myDemoArray.sort(function(a,b){ 
    return b.value -a.value; 
}); 
// The first element of this sorted array will have element with maximum value 
console.log(_getSortedElem[0].name); 

überprüfen verstehen helfen diese jsfiddle für die Demo

Verwandte Themen