我有一个针对sharepoint API的AJAX请求。它返回一个Files数组。我正在获取这些结果数组并向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");
}
});
};
答案 0 :(得分:1)
你可以用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>');
});
答案 1 :(得分:0)
如果我是你,我会使用像下划线那样的东西
http://underscorejs.org/#sortBy
像这样的事情
var array = [
{ name: "banana" },
{ name: "carrot" },
{ name: "apple" }
];
var sorted = _.sortBy(array,"name");
并传递数组中的data.d.results
希望有所帮助