Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要对从服务器调用的对象数组进行排序_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 需要对从服务器调用的对象数组进行排序

Javascript 需要对从服务器调用的对象数组进行排序,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个对象数组,可以提取并显示在页面上。然而,顺序一直在变化。我如何按固定顺序称呼他们 function chatFetch(){ $.ajax({ url: "https://api.parse.com/1/classes/chats", dataType: "json", method: "GET", success: function(data){ $("ul"

我有一个对象数组,可以提取并显示在页面上。然而,顺序一直在变化。我如何按固定顺序称呼他们

function chatFetch(){
      $.ajax({
          url: "https://api.parse.com/1/classes/chats",
          dataType: "json",
          method: "GET",

          success: function(data){

                $("ul").empty();

                for(var key in data) {
                    for(var i in data[key]){
                      console.log(data[key][i])
                      $(".messages").append("<li>"+data[key][i].text+"</li>");
                    }
                }    

          }
      })
    }
但当我再次获取数组时,对象如下所示:

Object {
   text: "RoboChat: Johnny 5 alive!", 
   username: "RoboChat", 
   createdAt: "2014-03-19T18:52:18.533Z", 
   updatedAt: "2014-03-19T18:52:18.533Z", 
   objectId: "xnRMkxJMX3"
} 

理想情况下,我希望它们按照生成顺序进行排序。他们是否可能有随机密钥排序?我如何改变这一点,在我这边,而不是服务器端

如果
数据
是一个带有自定义比较函数的实际数组使用

data.sort(function(dataA,dataB){
   if(dataA.someThing > dataB.someThing){
      return 1;
   } else if(dataA.someThing < dataB.someThing){
      return -1;
   } else {
      return 0;
   }
};
如果您不需要任何特殊类型的排序(即字典排序),那么只需调用
sort()
,而不需要任何参数

编辑:

如果您想在
createdAt

data.sort(function(msgA,msgB){
       var msgACreate = new Date(msgA.createdAt),
           msgBCreate = new Date(msgB.createdAt);

       if(msgACreate > msgBCreate){
          return 1;
       } else if(msgACreate < msgBCreate){
          return -1;
       } else {
          return 0;
       }   
});

你想怎样分类?按字母顺序你能发布你的对象数组吗?通过迭代方法,它看起来都像对象,正如@A.Wolff所指出的,对象中没有顺序,因此它从来都不一样
data[key].sort(...)
data.sort(function(msgA,msgB){
       var msgACreate = new Date(msgA.createdAt),
           msgBCreate = new Date(msgB.createdAt);

       if(msgACreate > msgBCreate){
          return 1;
       } else if(msgACreate < msgBCreate){
          return -1;
       } else {
          return 0;
       }   
});
[{
   text: "RoboChat: Johnny 5 alive!", 
   username: "RoboChat", 
   createdAt: "2014-03-19T18:52:18.533Z", 
   updatedAt: "2014-03-19T18:52:18.533Z", 
   objectId: "xnRMkxJMX3"
}, {
   text: "RoboChat: Johnny 5 alive!", 
   username: "RoboChat", 
   createdAt: "2014-03-19T18:51:28.600Z", 
   updatedAt: "2014-03-19T18:51:28.600Z", 
   objectId: "NKh7VaWY5X"
}]