0

I have

var mean = 20;
var median = 30;

I have function that should get parameter of type string ('mean' / 'median'), and do something with the parallel var:

function compute(varNameAsString){
  return varNameAsString.toVariable() + 5;
} 

how can I implement the toVariable? I tried

varNameAsString.valueOf()

but it didn't work...

thanks!

arielorvits
  • 4,735
  • 6
  • 33
  • 57

3 Answers3

1

See here

Use a hash table. Try this.

var values = { mean: 20, median: 30 };

function compute(varManeAsString){
  return values[varNameAsString] + 5;
}

That should work.

Of course, you could always use eval, but as the post I linked to says, the hash table is usually better.

Community
  • 1
  • 1
Cob
  • 86
  • 1
  • 1
  • 3
0

Try:

return eval(varNameAsString) + 5;
David P
  • 1,889
  • 2
  • 13
  • 27
0

You can do window[varNameAsString]:

var mean = 20;
var median = 30;

function compute(varNameAsString){
  return window[varNameAsString] + 5;
} 

compute('median'); // Will output 35
putvande
  • 14,686
  • 3
  • 31
  • 50