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

请求解释:基于game对象创建scorers进球统计对象的代码逻辑

代码解释:统计进球球员次数的实现逻辑

给定的游戏数据对象

const game = {
    team1: 'Bayern Munich',
    team2: 'Borrussia Dortmund',
    score: '4:0',
    scored: ['Lewandowski', 'Gnarby', 'Lewandowski', 'Hummels'],
    date: 'Nov 9th, 2037',
    odds: {
      team1: 1.33,
      x: 3.25,
      team2: 6.5,
    },
};

需求目标

创建名为scorers的对象,以进球球员姓名为属性名,对应进球次数为属性值。

你的解决方案代码

const scorers = {};
for (const player of game.scored) {
  scorers[player] ? scorers[player]++ : (scorers[player] = 1);
};
console.log(scorers);

代码工作原理拆解

  • 初始化空对象:const scorers = {}; 先创建一个空对象,用来存储最终的进球次数统计结果。
  • 遍历进球数组:for (const player of game.scored) 使用for...of循环遍历game.scored数组,数组里的每一项都是进球球员的名字,循环会逐个取出每个名字赋值给player变量。
  • 核心统计逻辑(三元表达式):scorers[player] ? scorers[player]++ : (scorers[player] = 1);
    • 先判断scorers对象中是否存在当前player对应的属性:如果存在(说明该球员之前已经有进球记录,属性值是大于0的数字,在布尔判断中为真),就把该属性的值加1,实现次数累加。
    • 如果不存在该属性(此时scorers[player]为undefined,布尔判断为假),就给scorers对象新增这个球员属性,并将值设为1,标记这是该球员第一次进球。
  • 输出结果:console.log(scorers); 最终打印出的scorers对象就是{ Lewandowski: 2, Gnarby: 1, Hummels: 1 },完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 18:20:35