我正在使用一個 NBA API,其中一個功能是按姓氏查找球員。我遇到的問題;當然,多個玩家可以有相同的姓氏。
使用姓氏排序時來自 API 的回應示例:
"players": [
0: {
"firstName":"Anthony"
"lastName":"Davis"
"teamId":"17"
"yearsPro":"9"
"collegeName":"Kentucky"
"country":"USA"
"playerId":"126"
"dateOfBirth":"1993-03-11"
"affiliation":"Kentucky/USA"
"startNba":"2012"
"heightInMeters":"2.08"
"weightInKilograms":"114.8"
1: {
"firstName":"Deyonta"
"lastName":"Davis"
"teamId":"14"
"yearsPro":"3"
"collegeName":"Michigan State"
"country":"USA"
"playerId":"127"
"dateOfBirth":"1996-12-02"
"affiliation":"Michigan State/USA"
"startNba":"2016"
"heightInMeters":"2.11"
"weightInKilograms":"107.5"
}
我在這里限制了結果,但它一直在繼續,等等。所以,我想做兩件事:
首先,使用他們的名字和姓氏提取/過濾正確的玩家。在所述提取中,匹配時我仍然需要完整的陣列資訊。
所以本質上,我想要“Deyonta Davis”,但是當找到時——我還需要上述球員的其他資訊(職業生涯、大學、國家等)
我已經設定了一個命令來通過姓氏檢索此 API 中嵌套資料的第一個結果 - 該命令采用您輸入的姓氏并發送第一個結果。確切的問題是,第一個結果可能不是您要找的人。
目標是包括名字和姓氏,以避免拉錯玩家。
我目前如何通過姓氏呼叫資訊的片段:
// Calling API
const splitmsg = message.content.split(' ')
var lastnameurl = "https://api-nba-v1.p.rapidapi.com/players/lastName/" splitmsg[1];
axios.get(lastnameurl, {
headers: {
"x-rapidapi-key": apikey,
"x-rapidapi-host": apihost
}
// Extracting Player Information (first result)
var playerfirstname = response.data.api.players[0].firstName;
var playerlastname = response.data.api.players[0].lastName;
var collegename = response.data.api.players[0].collegeName;
var countryname = response.data.api.players[0].country;
var playerDOB = response.data.api.players[0].dateOfBirth;
var yrspro = response.data.api.players[0].yearsPro;
var startednba = response.data.api.players[0].startNba;
任何幫助將不勝感激,謝謝。
uj5u.com熱心網友回復:
如果我正確理解了這個問題,那么任務是:
從屬性firstName和lastName等于所需值的陣列中檢索第一個匹配物件。
為此,您可以使用內置查找功能。
const player = array.find(el => {
return el.firstName === "Deyonta" && el.lastName === "Davis"
});
請記住,如果陣列中沒有這樣的物件,player則將是undefined。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/408063.html
標籤:
