You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据键名累加对象对应属性值 实现分数按等级统计计数

分数等级统计实现方案

实现思路

  • 遍历所有分数,按照给定规则匹配每个分数对应的等级
  • 匹配成功后将统计对象对应等级的计数+1
  • 不符合规则的分数(如本题中的100分)不做统计

代码实现(JavaScript)

方法1:使用数组reduce方法(推荐,更符合函数式编程习惯)

// 原始分数数组
const scores = [50, 50, 60, 70, 80, 90, 90, 100];
// 初始统计对象
const initialCounter = { A: 0, B: 0, C: 0, D: 0 };

// 统计逻辑
const gradeCounter = scores.reduce((counter, currentScore) => {
  if (currentScore >= 90 && currentScore < 100) {
    counter.A++;
  } else if (currentScore >= 80 && currentScore < 90) {
    counter.B++;
  } else if (currentScore >= 60 && currentScore < 80) {
    counter.C++;
  } else if (currentScore >= 0 && currentScore < 60) {
    counter.D++;
  }
  return counter;
}, initialCounter);

console.log(gradeCounter);
// 输出结果:{ A: 2, B: 1, C: 2, D: 2 }

方法2:使用普通for循环实现

const scores = [50, 50, 60, 70, 80, 90, 90, 100];
const gradeCounter = { A: 0, B: 0, C: 0, D: 0 };

for (let i = 0; i < scores.length; i++) {
  const score = scores[i];
  if (score >= 90 && score < 100) gradeCounter.A++;
  else if (score >= 80) gradeCounter.B++;
  else if (score >= 60) gradeCounter.C++;
  else if (score >= 0) gradeCounter.D++;
}

console.log(gradeCounter);
// 输出结果:{ A: 2, B: 1, C: 2, D: 2 }

注意事项

  • 按照题目给定的等级规则,100分不属于任何等级,因此不会被统计。如果需要将100分计入Grade A,只需将A等级的判断条件修改为currentScore >= 90 && currentScore <= 100即可,修改后A的统计结果为3。

内容的提问来源于stack exchange,提问作者Sweet Caramel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 03:06:02