You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义Google Apps Script函数无法正确接收数组参数

解决Google Apps Script自定义函数接收Google Sheets数组参数的问题

问题原因

Google Sheets向自定义函数传递数组参数时,会自动把水平数组(如{1,2,3})或垂直数组(如{1;2;3})包装成二维数组。比如你调用=Prodmult({1,2,3})时,函数收到的legs实际是[[1,2,3]],所以legs.length返回的是外层数组的长度1,而非你期望的元素个数3。

解决方案

先将传入的二维数组扁平化处理为一维数组,再执行乘法运算。以下是实现代码:

function Prodmult(legs) {
  // 扁平化二维数组,兼容水平/垂直数组的传递格式
  const flatNumbers = legs.flat();
  // 计算数组所有元素的乘积,初始值设为1(乘法单位元)
  return flatNumbers.reduce((total, num) => total * num, 1);
}

代码说明

  • legs.flat():将二维数组转为一维数组,无论是[[1,2,3]]还是[[1],[2],[3]],都会被处理成[1,2,3]。
  • reduce():遍历一维数组,累积计算所有元素的乘积,初始值1确保空数组时返回1(若需要空数组返回0,可修改初始值并添加长度判断)。

测试验证

在Google Sheets中调用:

  • =Prodmult({1,2,3}) 返回 6
  • =Prodmult({1;2;3}) 返回 6
  • =Prodmult({2,3,4}) 返回 24

内容的提问来源于stack exchange,提问作者user5670600

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 10:12:04