我们希望能够了解英超联赛中特定足球队在 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
问题是您将团队的 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;
}