google apps script - How to loop range of cells and set value in adjacent column -


i'm learning google apps scripts use google spreadsheets.

i have list of urls in 1 column , want write script title element each url , write in adjacent cell. have accomplished 1 specific cell per following script:

function gettitles() {   var ss = spreadsheetapp.getactivespreadsheet();   var sheet = ss.getsheetbyname("url_list");   var range = sheet.getrange("g3");   var url = range.getvalue();    var response = urlfetchapp.fetch(url);   var doc = xml.parse(response.getcontenttext(),true);   var title = doc.html.head.title.gettext();   var output = sheet.getrange("h3").setvalue(title);    logger.log(title);   return title; } 

this gets url in g3, parses it, pulls element , writes output in h3.

now have basic building block want loop entire g column , write output adjacent cell i'm stuck. can point me in right direction?

may this:

function gettitles() {   var ss = spreadsheetapp.getactivespreadsheet();   var sheet = ss.getsheetbyname("url_list");   var urls = sheet.getrange("g3:g").getvalues();   var titlelist = [], newvalues = [],       response, doc, title;    (var row = 0, var len = urls.length; row < len; row++) {     if (urls[row] != '') {       response = urlfetchapp.fetch(urls[row]);       doc = xml.parse(response.getcontenttext(),true);       title = doc.html.head.title.gettext();       newvalues.push([title]);         titlelist.push(title);         logger.log(title);     } else newvalues.push([]);   }    logger.log('newvalues ' + newvalues);   logger.log('titlelist ' + titlelist);    // set new column values @ once!   sheet.getrange("h3").offset(0, 0, newvalues.length).setvalues(newvalues);   return titlelist;  } 

Comments