[英]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.