how to create and assign a value to a variable created dynamically?

后端 未结 3 1942
闹比i
闹比i 2021-01-07 03:27

I\'m trying to get this to work:

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

The purpose is to have only 1 function instead h

3条回答
  •  挽巷
    挽巷 (楼主)
    2021-01-07 03:41

    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'];
    

提交回复
热议问题