Skip to content Skip to sidebar Skip to footer

Inputting An Array Into Math.max In Google Apps Scripts

In a Google sheet, I have a custom form based off of some posts/blogs that I have found online to learn more about Google App Scripts. The form works correctly but I am having trou

Solution 1:

You can use Math.max.apply() at GAS. And data retrieved by getValues() is a 2 dimensional array. So in order to use the data for Math.max.apply(), the array has to be flattened. By reflecting this, the sample script can be modified as follows.

Script :

functionitemAdd(form) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var sh = SpreadsheetApp.getActiveSheet();
  var lRow = sh.getLastRow();
  var range = sh.getRange(3,1,lRow,1);
  var ar = Array.prototype.concat.apply([], range.getValues());
  var maxNum = Math.max.apply(null, ar);
  sheet.appendRow([maxNum,form.category, form.item, form.manupub, form.details, form.quantity]);
  returntrue;
}

If I misunderstand your question, I'm sorry.

Solution 2:

The following should help. You need to extract the values from the range. This will return a 2 dimensional array.

var vals = range.getValues();
//assuming your values are non negative, set the initial max to 0var max = 0;
for(var i=0; i<vals.length; i++) {
  max = Math.max(max, vals[i][0]);
}
//max will now have the largest value

Post a Comment for "Inputting An Array Into Math.max In Google Apps Scripts"