【发布时间】:2020-06-07 09:10:53
【问题描述】:
我是 js 的初学者。我正在使用 vuejs、axios 和这个 api https://www.balldontlie.io 来完成一个家庭作业项目。这个项目一定要咨询nba球员的数据。我需要你的帮助来解决问题。这是我的代码:
var app = new Vue({
el: '#app',
data: {
teams: null,
players: [],
selectedTeam: null,
selectedTeamPlayers: [],
selection: false,
id : [],
season_averages : []
},
methods: {
getAllPlayers() {
axios.get('https://www.balldontlie.io/api/v1/players?per_page=100').then(response => {
let total = response.data.meta.total_pages;
let req = [];
let url = 'https://www.balldontlie.io/api/v1/players?per_page=100&page=';
for (let i = 1; i <= total; i++) {
req.push(axios.get(url + i));
}
axios.all(req).then(axios.spread((...responses) => {
for (let i = 0; i < responses.length; i++) {
let jsonPlayers = responses[i].data.data;
for (let j = 0; j < jsonPlayers.length; j++) {
this.players.push(jsonPlayers[j]);
this.id.push(jsonPlayers[j].id);
}
}
console.log(this.id);
}));
});
},
getSeasons() {
let seasons = getAllplayers();
let sa = [];
for (var i = 0; i < seasons; i++) {
axios.get("https://www.balldontlie.io/api/v1/season_averages?player_ids[]=" + i).then(response => {
sa[i] = response.data.data;
for (var i = 0; i < sa.length; i++) {
this.season_averages.push(sa[i]);
}
});
}
console.log(season_averages);
}
},
mounted() {
this.getSeasons();
this.getAllPlayers();
}
});
所以我请求获取 nba 球员和球队的数据。在这个脚本中,我的第一个函数返回一个仅包含玩家 id 的 json 结构。第二个应该返回所有球员的赛季平均值。但是,您只能访问特定玩家的统计数据。 我的意思是,您可以通过在 url 参数中传递的 id 访问统计玩家。
示例:https://www.balldontlie.io/api/v1/season_averages?player_ids[]=237 此网址显示 id 等于 237 的玩家的赛季平均值。
所以我想要做的是获取所有玩家,为此我必须获取所有玩家的 ID。这就是为什么我需要第一个功能。我将在第二个函数中使用它来将每个 id 与 api 的 url 连接起来。所以我可以访问它们并将它们全部存储到一个数组中并返回所有的统计信息。
我的问题是如何在 axios 请求中使用 for 循环来获取每个玩家的赛季平均值?
问候
YT
【问题讨论】:
标签: javascript vue.js for-loop axios