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 = {};
ps: did mean start 1 in line 11? for (var = 1; ...
arrays start @ 0.
Comments
Post a Comment