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
  • 5,235
  • 8
  • 36
  • 61

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
  • 2,027
  • 3
  • 15
  • 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
  • 15,068
  • 3
  • 34
  • 50