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

getScore函数问题:多选题测试答案组合得分计算异常

排查getScore()得分计算逻辑问题

让我帮你拆解这个函数里最容易踩的几个坑,结合你给出的评分规则,咱们逐个维度分析常见错误,再给出修正后的参考实现:

一、常见逻辑错误点分析

1. 年龄维度:边界划分错误 + 判断顺序问题

你的规则是:1-25岁0分,26-40岁5分,41-60岁8分,60岁以上10分。

  • 最容易错的是60岁的归属:很多人会把60岁以上写成>=60,但按规则60岁属于41-60区间(得8分),61岁及以上才是10分。
  • 另外如果判断顺序颠倒(比如先判断60+再判断41-60),会导致41-60的区间被覆盖,得分错误。

2. BMI维度:区间合并遗漏或边界错误

规则是:0-25得0,26-30得0,31-35得9,35以上得10。

  • 常见错误是把35以上写成>=35,但按规则35本身属于31-35区间(得9分),>35才是10分。
  • 还有人会拆分0-25和26-30的判断,但如果漏写其中一个区间,会导致部分BMI值无匹配,得分异常。

3. 家族糖尿病史:判断顺序优先级错误

规则是:无得0,祖父母有得7,兄弟姐妹/父母有得15。

  • 这里要注意高权重条件优先判断:如果先判断「祖父母有病史」,再判断「父母/兄弟姐妹有病史」,那么同时满足两种情况的用户会被错误判定为7分(而不是正确的15分)。必须先检查最高权重的类别。

4. 饮食糖分:分类覆盖不全或顺序错误

规则是:低糖/正常糖得0,偏高糖得7,高糖得10。

  • 容易出现的问题是:没有覆盖所有饮食糖分的情况(比如漏写高糖的判断),或者判断顺序错误(先判断偏高糖再判断高糖,导致高糖被误判为偏高糖)。

二、修正后的参考实现(JavaScript)

function getScore(age, bmi, familyHistory, sugarIntake) {
  let score = 0;

  // 计算年龄得分
  if (age >= 1 && age <= 25) {
    score += 0;
  } else if (age >= 26 && age <= 40) {
    score += 5;
  } else if (age >= 41 && age <= 60) {
    score += 8;
  } else if (age > 60) { // 60岁以上指>60,60岁归到上一个区间
    score += 10;
  }

  // 计算BMI得分
  if (bmi >= 0 && bmi <= 30) { // 0-25和26-30合并为一个判断,都是0分
    score += 0;
  } else if (bmi >= 31 && bmi <= 35) {
    score += 9;
  } else if (bmi > 35) { // 35以上指>35,35归到上一个区间
    score += 10;
  }

  // 计算家族病史得分(优先判断高权重)
  if (familyHistory === '兄弟姐妹/父母有') {
    score += 15;
  } else if (familyHistory === '祖父母有') {
    score += 7;
  } else if (familyHistory === '无') {
    score += 0;
  }

  // 计算饮食糖分得分(优先判断高权重)
  if (sugarIntake === '高糖') {
    score += 10;
  } else if (sugarIntake === '偏高糖') {
    score += 7;
  } else if (sugarIntake === '低糖' || sugarIntake === '正常糖') {
    score += 0;
  }

  return score;
}

三、验证建议

你可以用几个测试用例验证:

  • 测试用例1:年龄60,BMI35,家族病史「父母有」,饮食「高糖」→ 得分应该是8+9+15+10=42
  • 测试用例2:年龄25,BMI26,家族病史「无」,饮食「正常糖」→ 得分0+0+0+0=0
  • 测试用例3:年龄61,BMI36,家族病史「祖父母有」,饮食「偏高糖」→ 得分10+10+7+7=34

内容的提问来源于stack exchange,提问作者Michael Wright

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:05:07