Google Apps Script:如何对二维数组中的元素求和?
解决Google Apps Script二维数组求和问题
你的核心问题是二维数组的元素都是子数组,需要先把它转换成一维数组,再用reduce()求和。以下是具体实现:
完整代码示例
function calculateArraySum() { // 模拟从Google表格获取的二维数组 const sheetData = [ [-4.0], [-1.0], [4.0], [2.0], [1.0], [3.0] ]; // 第一步:扁平化二维数组(两种可选方法) // 方法1:手动提取每个子数组的第一个元素(兼容性更强) const flatData = sheetData.map(item => item[0]); // 方法2:用ES6的flat()方法直接扁平化(更简洁) // const flatData = sheetData.flat(); // 第二步:对一维数组求和 const totalSum = flatData.reduce((acc, curr) => acc + curr, 0); Logger.log(totalSum); // 输出结果:5.0 }
关键步骤说明
- 扁平化数组:从Google表格获取的单列数据默认是二维数组(每个单元格值被包裹在子数组里),必须先提取每个子数组中的数值,才能进行求和计算。
- reduce求和的初始值:
reduce()的第二个参数0是累加器的初始值,必须加上——如果数组为空或者第一个元素是负数,不加初始值可能导致计算错误。
内容的提问来源于stack exchange,提问作者Moggy
相关产品推荐
相关产品推荐

