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

编写比较两数组回合得分、判定最终获胜者的JavaScript函数

解决数组回合得分比较的获胜者判定问题

需求明确

我们需要实现一个函数,对比两个玩家的得分数组:

  • 数组中每个元素对应同一回合的得分,回合获胜者为该回合得分更高的玩家
  • 最终获胜者是赢得回合数更多的一方;若双方赢的回合数相同,则判定为平局
  • 示例:player1 = [4,5,7,8],player2 = [5,3,2,1],player1赢3回合(5>3、7>2、8>1),player2赢1回合(5>4),最终player1获胜

原代码的问题分析

你提供的代码存在几个关键问题:

  1. 语法错误:else(result1[i] == result[i]); 写法错误,else不需要附加条件判断,且result[i]应为result2[i],多余的分号也会导致逻辑错乱
  2. 逻辑错误:平局时给两个玩家都加回合数,不符合需求——平局应该双方都不增加获胜回合数
  3. 输出时机错误:把胜负判断放在for循环内部,导致每轮回合结束就打印结果,而非所有回合统计完成后输出最终结果

修正后的代码

function solution(result1, result2) {
    let player1Wins = 0;
    let player2Wins = 0;

    // 遍历每一轮回合统计获胜次数
    for (let i = 0; i < result1.length; i++) {
        if (result1[i] > result2[i]) {
            player1Wins++;
        } else if (result2[i] > result1[i]) {
            player2Wins++;
        }
        // 平局情况不做处理,双方都不增加获胜次数
    }

    // 所有回合统计完成后,判定最终结果
    if (player1Wins > player2Wins) {
        console.log("PLAYER1");
    } else if (player1Wins === player2Wins) {
        console.log("TIE");
    } else {
        console.log("PLAYER2");
    }
}

// 测试示例
solution([4,5,7,8], [5,3,2,1]); // 输出 PLAYER1

代码说明

  • 用player1Wins和player2Wins变量统计获胜回合数,命名更直观清晰
  • 遍历数组时仅在一方得分更高时增加对应获胜次数,平局不做处理
  • 胜负判断放在循环外部,确保所有回合统计完成后再输出最终结果
  • 测试示例可正确输出PLAYER1,完全符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:57:19