繁体   English   中英

如何用分隔符分割数组的总和?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM