簡體   English   中英

如何通過AJAX請求對以JSON格式返回的數據進行排序?

[英]How do I Sort the data returned in JSON format by an AJAX request?

我有一個針對SharePoint API的AJAX請求。 它返回一個文件數組。 我將這些結果數組添加到Select元素中添加一系列選項。 我希望能夠通過Name屬性按字母順序對數組進行排序。 我將如何去做呢? 我當前的Ajax通話如下。謝謝

    jQuery.ajax({
        url: url,
        type: "GET",
        headers: {
            "accept": "application/json;odata=verbose",
        },
        success: function (data) {
            jQuery("#items").empty();
            jQuery("#items").prepend('<option value="-1">-Select Item-</option>').val('-1');
            jQuery.each(data.d.results, function (index, item) {
                jQuery("#items").append('<option value="' + item.ServerRelativeUrl + '">' + item.Name + '</option>');
            });
            jQuery("#items").val("");
        },
        error: function () {
            alert("Error getItems");
        }
    });
};

您可以使用javascript對數組進行排序,但是您無法讓Sharepoint為您返回有序列表嗎? 似乎這將是一個有用的功能。 無論如何,在javascript中:

jQuery("#items").prepend('<option value="-1">-Select Item-</option>').val('-1');
var res = data.d.results.sort(function(a,b){
    if(a.Name < b.Name) return -1;
    if(a.Name > b.Name) return 1;
    return 0;
});
jQuery.each(res, function (index, item) {
    jQuery("#items").append('<option value="' + item.ServerRelativeUrl + '">' + item.Name + '</option>');
});

如果我是你,我會用下划線之類的東西

http://underscorejs.org/#sortBy

這樣的東西

var array = [
    { name: "banana" },
    { name: "carrot" },
    { name: "apple" }
];

var sorted = _.sortBy(array,"name");

並將data.d.results傳遞給數組

希望能幫助到你

暫無
暫無

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

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