如何通过prompt()创建二维数组并实现最高得分球员统计?
用prompt()创建球员信息二维数组并统计最高得分球员
你可以通过以下方式实现用prompt()收集用户输入来构建球员信息二维数组,同时保留你原有的最高得分统计逻辑:
完整实现代码
// 收集用户输入的球员信息 function collectPlayerInfo() { let playerInfo = []; // 获取球员数量并验证输入有效性 let playerCount = prompt("请输入球员的总数量:"); // 确保输入是大于0的有效数字 while (isNaN(playerCount) || playerCount <= 0) { playerCount = prompt("输入无效,请输入一个大于0的数字作为球员数量:"); } playerCount = parseInt(playerCount); // 循环收集每个球员的名字和得分 for (let i = 0; i < playerCount; i++) { let playerName = prompt(`请输入第${i+1}位球员的名字:`); // 确保名字不为空 while (!playerName.trim()) { playerName = prompt(`名字不能为空,请重新输入第${i+1}位球员的名字:`); } let playerScore = prompt(`请输入${playerName}的得分:`); // 确保得分是有效非负数字 while (isNaN(playerScore) || playerScore < 0) { playerScore = prompt(`得分无效,请输入一个非负数字作为${playerName}的得分:`); } playerScore = parseInt(playerScore); // 将当前球员信息加入数组 playerInfo.push([playerName, playerScore]); } return playerInfo; } // 你原有的最高得分球员统计函数 function highestRunScorer(playerinfo) { var highScorer = playerinfo[0][0]; var highScore = playerinfo[0][1]; for (var x = 1; x < playerinfo.length; x++) { if (highScore < playerinfo[x][1]) { highScore = playerinfo[x][1]; highScorer = playerinfo[x][0]; } } return highScorer; } // 执行完整流程 var playerData = collectPlayerInfo(); var topPlayer = highestRunScorer(playerData); alert(`最高得分的球员是:${topPlayer}`); console.log(`最高得分的球员是:${topPlayer}`);
关键细节说明
- 输入验证:加入循环判断逻辑,避免用户输入无效内容(比如非数字的球员数量、空名字、负数得分)导致程序出错。
- 类型转换:用
parseInt()把用户输入的得分从字符串转为数字类型,保证后续得分比较的逻辑正常运行。 - 流程衔接:新的
collectPlayerInfo()函数负责收集输入并返回二维数组,直接传入你原有的统计函数即可完成功能。
内容的提问来源于stack exchange,提问作者Shahe Imran Imon
相关产品推荐
相关产品推荐

