如何将未指定数量的变量传递给 Google Apps 脚本自定义函数

How do I pass unspecified number of variables to Google Apps Script Custom Function

我有一个GoogleSheet。在这个sheet中,我想运行一个自定义函数来做一个复杂的计算。此计算将基于其他 sheet 选项卡中其他单元格的值。因此,我希望能够传入一些将来可能会发生变化的变量。

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

谢谢。

您可以使用 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;
  })
}