2 回答
TA贡献1817条经验 获得超14个赞
您可以采用单循环并添加值,直到达到undefined值,然后将总和推送到结果集并重置sum。
最后,也将最终总和推入结果集。
var data = [[23.0], [25.0], [26.0], [89.0], [""], [45.0], [78.0], [62.0], [""], [123.0], [45.0], [68.0]],
result = [],
sum = 0,
value,
i;
for (i = 0; i < data.length; i++) {
value = data[i][0];
if (value === "") {
result.push(sum);
sum = 0;
continue;
}
sum += value;
}
result.push(sum);
console.log(result);
TA贡献1811条经验 获得超4个赞
使用array.reduce,它可以很容易地完成。
const data = [
[23.0],
[25.0],
[26.0],
[89.0],
[],
[45.0],
[78.0],
[62.0],
[],
[123.0],
[45.0],
[68.0]
];
let [result, sum] = data.reduce(
([arr, sum], curr) => {
if (curr.length) sum += curr[0];
else arr.push(sum);
return [arr, sum];
},
[[], 0]
);
result.push(sum); //push last data
console.log(result);
console.log(result.join("."));
添加回答
举报