班级 姓名 分数
1班 A 66
1班 B 69
1班 AA 88
5班 C 65
5班 K 70
6班 M 96
6班 N 100
……
如何求出每列中班级分数的和?
输出的格式为:1班 A 66 223
该回答引用ChatGPT
该代码首先定义了一个空对象 sumByClass,用于存储每个班级的分数总和。然后将输入数据按行分割,遍历每一行数据,提取出班级名称和分数,并将分数加到相应班级的分数总和中。
最后,使用 Object.entries 方法遍历 sumByClass 对象,输出每个班级的分数总和。输出结果与 Python 实现相同。
注意,在 JavaScript 中,字符串的 split 方法返回的是数组,而不是 Python 中的列表。因此在提取班级名称和分数时,需要使用数组解构语法。另外,在 JavaScript 中使用 for...of 循环可以方便地遍历对象的键值对。
javascript
const data = `1班 A 66
1班 B 69
1班 AA 88
5班 C 65
5班 K 70
6班 M 96
6班 N 100`;
const sumByClass = {};
data.split('\n').forEach((line) => {
const [className, _, score] = line.split(' ');
if (sumByClass[className]) {
sumByClass[className] += parseInt(score);
} else {
sumByClass[className] = parseInt(score);
}
});
for (const [className, totalScore] of Object.entries(sumByClass)) {
console.log(`${className} ${totalScore}`);
}
在 SAS 中,可以使用 PROC SQL 语句来进行分组求和。
PROC SQL;
SELECT 班级, 姓名, 分数, SUM(分数) AS 班级分数和
FROM 表名
GROUP BY 班级;
QUIT;