如何使用ajax填充数组?

时间:2016-05-16 21:36:46

标签: jquery ajax

我有一个数组网页,我需要将其转换为可读数据。如何使用jquery / Ajax对数组进行排序?

以下是链接https://fcctop100.herokuapp.com/api/fccusers/top/recent

2 个答案:

答案 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>