Google Apps Script多维数组求和出现字符串拼接问题如何解决
问题根因
- 求和变量
first初始值被错误设置为空数组[],非数值类型,使用+=操作符时会触发字符串拼接逻辑 - API返回的
obj[0]、obj[1]为字符串格式的数值,即使second初始值为数值0,和字符串相加时也会自动将数值转为字符串执行拼接,不会进行算术求和
修复代码
将两个求和变量初始值都设为数值0,相加前先将接口返回的字段强制转为数值类型即可:
var first = 0; var second = 0; price.forEach(function(obj){ first += Number(obj[0]); second += Number(obj[1]); }); Logger.log(first); Logger.log(second);
如果需要避免浮点数精度问题,输出时可以用toFixed()指定保留小数位数,比如保留两位小数:
Logger.log(first.toFixed(2)); // 输出 112.09
注:数组长度在1000级时,当前遍历方式的性能完全满足需求,无需额外优化。
内容的提问来源于stack exchange,提问作者johnvan
相关产品推荐
相关产品推荐

