Home > database >  Printing Array Values on Apps Script
Printing Array Values on Apps Script

Time:02-20

How do you print all values in an array onto the modal dialog? I have tried the code below but it only prints the last array value.

for (var count = 0; count < 10; count  ) {
  var htmlOutput = HtmlService.createHtmlOutput(arr[count]);
  var arrayOutput = SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Test');
}

CodePudding user response:

You can just use join method

SpreadsheetApp.getUi().showModalDialog(HtmlService.createHtmlOutput(arr.join(","),"Test")

or

SpreadsheetApp.getUi().showModalDialog(HtmlService.createHtmlOutput(JSON.stringify(arr),"Test")

CodePudding user response:

showModalDialog() method does not suspend the server-side script while the dialog is open.

The script should show all the elements one by one. But a newer dialog might close the older one. So, you probably only see the last one. If you want to show all the elements in one dialog, use JSON.stringify():

SpreadsheetApp.getUi().showModalDialog(
  HtmlService.createHtmlOutput(
    JSON.stringify(arr,null,2)
  ), 'Test'
);

Or if you want to see them one by one, use Utilities.sleep():

for (var count = 0; count < 10; count  ) {
  var htmlOutput = HtmlService.createHtmlOutput(arr[count]);
  var arrayOutput = SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Test');
  Utilities.sleep(15*1000);
}
  • Related