簡體   English   中英

如何獲取此 JSON 數組中的最后一個對象?

[英]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] 獲取它。

JSON 數據 瀏覽器中的數據

我很缺乏經驗,所以我覺得我一定是在某個地方犯了一個愚蠢的錯誤! 感謝任何幫助。

'data'.lengthbio['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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM