我有一个数组网页,我需要将其转换为可读数据。如何使用jquery / Ajax对数组进行排序?
以下是链接https://fcctop100.herokuapp.com/api/fccusers/top/recent
答案 0 :(得分:0)
您可以通过将函数传递给sort方法来在javascript中对数组进行排序。 在函数中,返回-1或1,具体取决于2个元素的比较。下面的示例依赖于Order属性,根据您的需要进行修改。 aoSortedUrgencies是一个对象数组。
aoSortedUrgencies.sort(function (a, b) { return ((a.Order< b.Order) ? -1 : (a.Order> b.Order? 1 : 0)) });
排序后,您可以调用它来创建一个JSON字符串以传递给ajax调用:
JSON.stringify(aoSortedUrgencies)
答案 1 :(得分:-1)
取决于你想要按什么排序。
假设您要按用户名对其进行排序,可以使用this answer来解决问题。
在下面的示例中,我使用了上述函数按用户名对数据进行排序。
//This will sort your array
//srot function from https://stackoverflow.com/a/5503957/3591300
function SortByName(a, b){
var aName = a.username.toLowerCase();
var bName = b.username.toLowerCase();
return ((aName < bName) ? -1 : ((aName > bName) ? 1 : 0));
}
$.get("https://fcctop100.herokuapp.com/api/fccusers/top/recent", function(data) {
//here we run the function to sort the array of data before transforming it to table
data.sort(SortByName);
var table = '<table>'
for (i = 0; i < data.length; i++) {
table += '<tr><td>' + data[i].alltime + '</td><td><img width=20 height=20 src="' + data[i].img + '"></td><td>' + data[i].lastUpdate + '</td><td>' + data[i].recent + '</td><td>' + data[i].username + '</td></tr>';
}
$('body').append(table);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>