[英]How to split sums of array with separator with Google App Script?
[英]How to split sums of array with separator?
我从谷歌表的单列中得到一个数组,如[[23.0], [25.0], [26.0], [89.0], [], [45.0], [78.0], [62.0], [], [123.0], [45.0], [68.0]]
我怎样才能用空值[]
分割它并获得每个子数组的总和,比如( 163/185/236
)或更多,因为数组长度可能超过 1000,包括 20-50空值? 我从答案中修改了脚本。 但在我的情况下它不起作用。 我不明白为什么?
function getSums(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sh = ss.getSheetByName('TemplateTest'); var r = sh.getRange(1, 1, sh.getLastRow()); var arr = r.getValues(); //log: [[23.0], [25.0], [26.0], [89.0], [], [45.0], [78.0], [62.0], [], [123.0], [45.0], [68.0]] var sums = []; var sum = 0; // iterate through the array for (var i = 0; i < arr.length; i ++) { if (arr[i].length == null || i == arr.length - 1) { // empty array, push sum to array and reset sums.push(sum); sum = 0; } else { // array has values, sum them up and add to sum sum += arr[i].reduce((a, b) => a + b); } } Logger.log(sums) //log: [16345786212345] }
var arr = [[23.0], [25.0], [26.0], [89.0], [], [45.0], [78.0], [62.0], [], [123.0], [45.0], [68.0]];
var sums = [];
var sum = 0;
// iterate through the array
for (var i = 0; i < arr.length; i ++) {
if (arr[i].length == 0 || i == arr.length - 1) {
// empty array, push sum to array and reset
sums.push(sum);
sum = 0;
} else {
// array has values, sum them up and add to sum
sum += arr[i].reduce((a, b) => a + b);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.