如何计算给定球队关键“阿森纳”的总进球数。目前返回 0

问题描述 投票:0回答:1

我们希望能够了解英超联赛中特定足球队在 2014/2015 赛季期间总共进了多少个球。 您需要的所有信息都包含在此 JSON 文件中:https://s3.eu-west-1.amazonaws.com/hackajob-assets1.p.hackajob/challenges/football_session/football.json

这就是我现在拥有的。

var https = require('https');

async function main() {
    return await Promise.all([
        getRequestPromise('https://s3.eu-west-1.amazonaws.com/hackajob-assets1.p.hackajob/challenges/football_session/football.json')
    ]).then(results => {
        return results[0].rounds;
    });
}

function getRequestPromise(url) {
    return new Promise((resolve, reject) => {
        let request = https.get(url, (response) => {
          if (response.statusCode < 200 || response.statusCode > 299) {
             reject(new Error('Failed to load page, status code: ' + response.statusCode));
           }

          let body = [];
          response.on('data', (chunk) => body.push(chunk));
          response.on('end', () => resolve(JSON.parse(body.join(''))));
        });

        request.on('error', (err) => reject(err));
    });
}

async function run(teamKey) {
    
const data = await main();

let score = 0;

  for(round of data){
      for(match of round.matches){
          if(match.team1.name == teamKey){
              score += match.score1;
          }else if(match.team2.name == teamKey){
              score += match.score2;
          }
      }
  }
  return score;
}

run('arsenal');

输出: 预期的: 71 实际的: 0

node.js http
1个回答
0
投票

问题是您将团队的 key 传递给

run()
函数,并将其与团队的 name 进行比较。

您应该像这样传递团队名称

run('Arsenal');
或更改
run()
功能以使用这样的键

async function run(teamKey) {
  const data = await main();

  let score = 0;

  for (const round of data) {
    for (const match of round.matches) {
      if (match.team1.key === teamKey) {
        score += match.score1;
      } else if (match.team2.key === teamKey) {
        score += match.score2;
      }
    }
  }
  return score;
}
© www.soinside.com 2019 - 2024. All rights reserved.