【问题标题】:How do I pass unspecified number of variables to Google Apps Script Custom Function如何将未指定数量的变量传递给 Google Apps 脚本自定义函数
【发布时间】:2021-12-30 15:02:12
【问题描述】:

我有一张 Google 表格。在这张表中,我想运行一个自定义函数来进行复杂的计算。此计算将基于其他工作表选项卡中其他单元格的值。出于这个原因,我希望能够传入一些将来可能会改变的变量。

我注意到SUM function 允许使用可选参数。可选值是“可重复的”。这是我想在我的自定义函数、可重复/可选参数中重现的行为。 SUM 函数如何允许可重复/可选参数?如何在自定义函数中做同样的事情?

谢谢。

【问题讨论】:

  • 我会在一个数组中传递可重复的参数,在这个用例中(特别是如果你也传递其他变量)。不确定如何强制重载谷歌应用脚​​本函数,我认为这可能是不可能的,但我对该主题的研究早在 V8 之前。
  • 可以在数组中传递参数,然后测试它们的长度。

标签: google-apps-script google-sheets custom-function


【解决方案1】:

你可以使用function rest parameter syntax:

function COMPLEXSUM(...args) {
  let sum = 0  

  args.forEach(x => {
    sum += x
  })
  
  return sum
}

或者如果你想要一些参数是必需的,另外还有一些可选的:

function COMPLEXSUM(param1, param2, ...args) {
  let sum = param1 + param2
  
  return args.length === 0 ? sum : sum + args.reduce((pre, curr) => {
    return pre + curr;
  })
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 2014-08-18
    相关资源
    最近更新 更多