![](/img/trans.png)
[英]Jquery/Json - How can I get the last <P> in this JSON object?
[英]How can I get the last object in this JSON array?
我正在嘗試使用來自足球統計 API 的球員數據,但我似乎無法獲取當前賽季的數據(可以在數組的最后一個對象中找到)。 出於某種原因,我只獲取第三個索引的數據(下面的代碼)。
.then(data => {
//BIO
const bio = data['data'][0]
const nameValue = bio['fullname']
const imageValue = bio['image_path']
const teamValue = bio['team']['data']['name']
const countryValue = bio['nationality']
const birthdateValue = bio['birthdate']
const heightValue = bio['height']
const positionValue = bio['position']['data']['name']
//STATS
const stats = bio['stats']['data']['data'.length - 1]
const appearancesValue = stats['appearences']
這是我嘗試訪問的 JSON 數據的圖像。 在這種情況下,我應該從 [4] 獲取數據,但我從 [3] 獲取它。
我很缺乏經驗,所以我覺得我一定是在某個地方犯了一個愚蠢的錯誤! 感謝任何幫助。
該'data'.length
在bio['stats']['data']['data'.length - 1]
部分將計算為所述length
的的"data"
的字符串。 所以它總是 4。
你很可能想要數組的長度,所以它應該是
bio['stats']['data'][bio['stats']['data'].length - 1]
或者,為了清楚起見,您可以預先在變量中提取它
const dataLength = bio['stats']['data'].length;
const stats = bio['stats']['data'][dataLength - 1];
此外,由於您對對象屬性使用文字,因此您不需要使用[]
表示法。
const dataLength = bio.stats.data.length;
const stats = bio.stats.data[dataLength - 1];
你也可以用其余的代碼來做到這一點,以避免輸入所有的['..']
以亨利沃克的回答為基礎。
使用新的 JavaScript Array.at()方法允許您輸入正索引和負索引。 這段代碼:
const dataLength = bio.stats.data.length;
const stats = bio.stats.data[dataLength - 1];
簡單地翻譯成:
const stats = bio.stats.data.at(-1);
給你數組中的最后一個元素。
正如數據對象所表示的,它有 5 個對象,您可以將此特定對象放在第 3 位,因為在數組中第一個值存儲在索引 0 處。嘗試使用此代碼獲取最后一個對象
var lastObject = bio.stats.data[bio.stats.data.length-1].player_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.