javascript - google apps scripts: returning multiple objects -


using function load_table() below, i'm loading content of google doc spreadsheet hash variable tbl. using helper function test_hash() can see tbl visible within load_table(), along bt , cod , st contain data spreadsheet (cod constant). expected.

when try return these variables putting them hash variable res, loose tbl: reason tbl blank while other variables there expected. idea why happening? thanks.

function load_table( ss_data , colpos ) {    // create hash ss_data   // ========================    var bt  = [];   var st  = [];   var tbl = [];   var cod = '';    (var = 1; < ss_data.length; i++) {     cod = ss_data[i][0]     bt[ ss_data[i][1] ] = 1;     st[ ss_data[i][2] ] = 1;     tbl[ ss_data[i][1] + '~' + ss_data[i][2] ] = ss_data[i][colpos];   }    test_hash(tbl);    var btlvls = object.keys(bt).sort();   var stlvls = object.keys(st).sort();    var res = {};   res['cod'] = cod;   res['bt'] = btlvls;   res['st'] = stlvls;   res['tbl'] = tbl;    test_hash(tbl);   test_hash(res);    return res;  } 

test_hash() simple debug function:

 function test_hash( h ) {   logger.log( " --------- hash start -------- " );   ( var index in h ){      logger.log( index + ':' +  h[index] )   }   logger.log( " --------- hash end -------- " );  } 

this corresponding doget() function:

function doget(){   // counts yearmo    var liveid = 'xxxxx'   var testid = 'yyyyy'    var ss = spreadsheetapp.openbyid( testid );    var data = ss.getdatarange().getvalues();    var rencat_nbtids = load_table( data , 3 );   var rencat_nstids = load_table( data , 4 );   var rencat_nsubs  = load_table( data , 5 );    logger.log( rencat_nbtids );  } 

as described in objects maps, arrays lists , the associative array, problem tbl associative array aka map (object) you've declared list (array).

this little change in line 8 lets tbl survive return:

var tbl = {}; 

screen shot - debugger

ps: did mean start 1 in line 11? for (var = 1; ... arrays start @ 0.


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -