gpt4 book ai didi

javascript - 在 Google Apps 脚本中将数组输入 Math.Max

转载 作者:行者123 更新时间:2023-11-29 16:05:10 26 4
gpt4 key购买 nike

在 Google 表格中,我有一个基于我在网上找到的一些帖子/博客的自定义表格,以了解有关 Google App Scripts 的更多信息。表单工作正常,但我在处理应该为行创建 ID 的列时遇到了问题。

根据我的阅读,我的问题似乎是 math.max() 采用列表而不是数组。此外,我发现的用于常规 Javascript 的方法似乎都不适用于 Google Apps 脚本。例如,math.max.apply(null,array)。

我必须迭代数组还是有什么东西可以让 max() 接受一个数组?

这是我一直在玩的代码。

function itemAdd(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 maxNum = Math.max(range)
sheet.appendRow([maxNum,form.category, form.item, form.manupub,
form.details, form.quantity]);
return true;
}

最佳答案

您可以在 GAS 使用 Math.max.apply()。 getValues() 检索到的数据是一个二维数组。因此,为了将数据用于 Math.max.apply(),数组必须展平。通过反射(reflect)这一点,示例脚本可以修改如下。

脚本:

function itemAdd(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]);
return true;
}

如果我误解了你的问题,我很抱歉。

关于javascript - 在 Google Apps 脚本中将数组输入 Math.Max,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45202902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com