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

如何在JavaScript中将数组元素按[x:y]格式读取到指定对象中?

修复比赛积分统计逻辑

你的代码存在两个核心问题:

  1. 错误提取比赛数据:直接取字符串的首尾字符当作队伍标识,完全没正确拆分x:y格式的比分
  2. 缺失积分计算逻辑:只是简单赋值,没有按照比赛胜负规则统计积分

以下是修复后的代码,按照足球比赛积分规则(胜3分、平1分、负0分)实现:

function points(games) {
  const scoreBoard = {};

  for (const game of games) {
    // 拆分每场比赛的比分并转为数字
    const [score1, score2] = game.split(':').map(Number);
    const team1 = score1.toString();
    const team2 = score2.toString();

    // 初始化未记录队伍的积分
    if (!scoreBoard[team1]) scoreBoard[team1] = 0;
    if (!scoreBoard[team2]) scoreBoard[team2] = 0;

    // 根据比分计算并累加积分
    if (score1 > score2) {
      scoreBoard[team1] += 3;
    } else if (score1 === score2) {
      scoreBoard[team1] += 1;
      scoreBoard[team2] += 1;
    } else {
      scoreBoard[team2] += 3;
    }
  }

  return scoreBoard;
}

console.log(points(["1:0","2:0","3:0","4:0","2:1","3:1","4:1","3:2","4:2","4:3"]));

代码说明:

  • 用split(':')拆分每个比赛字符串,精准获取两队比分
  • 以队伍的标识(如"1"、"2")作为对象键,初始化未出现过的队伍积分为0
  • 按照胜负关系分别累加对应队伍的积分,最终返回完整的积分统计对象

内容的提问来源于stack exchange,提问作者Anatolian Rocks

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 17:25:20