簡體   English   中英

如何對 JSON 中的數組進行排序以獲得特定索引的值?

[英]How to sort array in JSON to get value of specific index?

嗨,我對 JSON 和 API 非常陌生,並且正在研究 API,其中我在數組中獲得價值,例如。

{
   id: 0,
   text: "one"
}
{
   id: 1,
   text: "two"
}
{
   id: 2,
   text: "three"
}

我只想要一個id=0的數組的值,我不知道如何在 JSON 中對數組進行排序來實現這一點,我使用 ajax 來獲取這個值

async function getDataFromId() {
    let url = 'API_URL';
    let Qid = 1;
    let result;
    try {
        result = await jQuery.ajax({
            url: url,
            type: 'GET',
            contentType: 'application/json',
        });
        result = result.sort((a, b) => a.id- b.id);
        console.log(result)
    }catch (error) {
        console.error(error);
    }
}

您無需對數組進行排序即可獲得 object,其中 id == 0。使用 Array#find 查找所需的 object。


let myObject = myArr.find((_o)=>_o.id === 0);

也許是這樣:

 if(result){ resultSorted = result.sort((a, b) => a.id - b.id); resultFiltered = result.filter(x => x.id == 0); }

我只想要 id=0 的數組的值

您正在根據其 ID 按ascendant order正確排序結果,因此唯一剩下的就是創建一個僅包含第一個元素的數組:

result = result.sort((a, b) => a.id- b.id)
console.log([result[0])

您可以利用您所追求的條件來filter數組。 在這種情況下: id === 0 這將刪除不符合條件的元素( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter ):

result = result.filter((a) => a.id === 0)
console.log(result)

請記住,對數組進行sorting比僅filtering它更昂貴,因此,如果您只想保留id === 0的數組,我肯定會選擇 go 作為filter選項

以上所有答案都很好,但您使用的是變量Qid

result = result.filter(function(i){return i.id === Qid});
console.log(resulr)

你不需要排序你可以過濾這個,這對你的工作來說會更容易

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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