Skip to content Skip to sidebar Skip to footer

How To Create And Assign A Value To A Variable Created Dynamically?

I'm trying to get this to work: function whatever(arg) { eval(arg) + '_group' = []; } The purpose is to have only 1 function instead having three with basically the same content

Solution 1:

function whatever(arg) {
  window[arg + '_group'] = [];
}

This will set a_group, b_group as global variable.

To access those variable use:

window['a_group'], window['b_group'] and so on.

According to edit

In your switch you should use break;.

switch(field_name) {
    case 'states':
        use = 'state';
        break;
    case 'cities':
        use = 'city';
        break;
    case 'neighborhoods':
        use = 'neighborhood';   
        break;     
}

Using local Object (without window object) and better

var myObject = {};

function whatever(arg) {
  myObject[arg + '_group'] = [];
  // output: { 'a_group' : [], 'b_group' : [], .. }
}

// to set value
myObject[arg + '_group'].push( some_value );

// to get value
myObject[arg + '_group'];

Solution 2:

Although you really shouldn't use eval this should help

eval(arg + '_group') = [];


Solution 3:

Just to increase @theparadox's answer.
I prefer to use the following way to make a switch.

var options =  {
    'states' : 'state',
    'cities': 'city',
    'neighborhoods': 'neighborhood'    
};
use = options[field_name];

demo

Or if you just want to remove the last letter, you can do this.

use = field_name.slice(0,-1);

demo


Post a Comment for "How To Create And Assign A Value To A Variable Created Dynamically?"