在Google脚本自定义函数中接受任意数量的参数?

时间:2014-10-29 22:31:50

标签: javascript google-apps-script google-sheets google-docs

我试图将COUNTIFS重新构建为Google脚本自定义函数并且遇到一件事:如何构建一个接受任意数量参数的函数?

如果您在Google工作表中使用COUNTIFS,则输入如下所示:

=COUNTIFS(criteria_range1, criterion1, [criteria_range2, criterion2, ...])

我的Google脚本可以是:

function COUNTIFS(criteria_range1, criterion1){
    // CountIFS code
}

...但是如何在我的函数中获取可选参数?

2 个答案:

答案 0 :(得分:5)

当传递给函数的参数数量可变时,您可以引用arguments object

答案 1 :(得分:2)

(支持AdamL答案的例子。)

自定义函数的自动完成功能会稍微滥用jsdoc标记。 “参数类型”,通常用括号括起来,例如{String},在函数帮助的“示例”部分中逐字使用,而参数名称在快速帮助中使用。

您可以利用此功能来阐明具有任意参数的函数,如下所示。

screenshot

<强>代码

/**
 * Calculate the driving distance along a route.
 *
 * @param {"london","manchester","liverpool"}
 *                   route  Comma separated ordered list of two or more map
 *                          waypoints to include in route. First point
 *                          is 'origin', last is 'destination'.
 *
 * @customfunction
 */
function drivingDistance(route) {
  if (arguments.length < 2) throw new Error( "Must have at least 2 waypoints." )
  var origin = arguments[0];
  var destination = arguments[arguments.length-1];
  ...