【问题标题】:Apps Script Custom Formulas OptimizationApps 脚本自定义公式优化
【发布时间】:2024-12-08 20:55:02
【问题描述】:

Google 提供了一个优化自定义公式的示例,以对存在数组的数组进行递归。它有助于提高整体效率Apps Script Page 提供的示例显示了一个有 1 个参数的示例,如下所示:

function DOUBLE(input) {
  if (input.map) {            // Test whether input is an array.
    return input.map(DOUBLE); // Recurse over array if so.
  } else {
    return input * 2;
  }
}

如果有 2 个或更多参数怎么办?我们怎么还能递归呢?

【问题讨论】:

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


【解决方案1】:

感谢您的回复。 TheMaster提到的帖子可能是对的,但说实话,我并不完全理解它。我通过再次参考 Google 的页面解决了我的问题。为了进一步补充 Ghost 的问题,我希望将一个参数作为一个数组,而将另一个参数作为一个常量 - 抱歉造成混淆,我一定会在我未来的问题中加入更多想法。

我更新后的原型公式如下所示:

function DOSOMETHING(x, y) {
  return Array.isArray(x) ?
      x.map(i => i.map(cell => cell * y)) :
      x * y;
}

很高兴报告它实际上做了我想要的。 x 可以是单个数字或数组。在这种情况下,y 只能是一个整数。

自从我的原始帖子以来,Google 更新了他们的页面以显示使用三元运算符的功能,这使我更容易阅读和理解。

【讨论】: