【问题标题】:Javascript object sorting [closed]Javascript对象排序[关闭]
【发布时间】:2013-12-16 02:25:33
【问题描述】:
users[usernames] = {
    userName        : username,
    userId          : id,
    userStatuINT    : statu,
    userMobilemi    : mobile,
};

控制台日志:

 console.log(JSON.stringify(data));

输出:

{
  "Guest-77":
      {"userName":"Jack","userId":"l1YeHSMYWvqUNgPPpvxE","userStatuINT":9,"userMobilemi":false},
  "Guest-47":
      {"userName":"Carter","userId":"zsq3Qcpd9qGw3X6kpvxF","userStatuINT":0,"userMobilemi":false},
  "Guest-68":{
      {"userName":"Alex","userId":"jmstDvTTLhZCLRW7pvxG","userStatuINT":4,"userMobilemi":false} 
} 

当代码:

$.each(data, function(key, value){
   // sorting...
});

你好。 这个数据“userStatuINT”如何排序?

谢谢。

【问题讨论】:

  • 你没有任何数据结构来表达任何种类或顺序,所以没有任何东西可以排序(除非你想同时以其他形式表达数据) .
  • 你试过什么,你能告诉我们任何代码吗?您希望数据如何排序?
  • users[usernames] = { userName : username, userId : id, userStatuINT : statu, userMobilemi : mobile, };
  • @SemihVURAL 你现在得到了 Guffa 的答复。你现在真的试一试怎么样?你还没有真正表现出任何努力。

标签: javascript json sorting object


【解决方案1】:

您不能对对象中的属性进行排序。将数据复制到数组中并排序。

例子:

var arr = [];
$.each(data, function(key, value){
  arr.push({ id: key, data: value });
});
arr.sort(function(x,y){
  var xn = x.data.userStatuINT;
  var yn = y.data.userStatuINT;
  return xn == yn ? 0 : xn < yn ? -1 : 1;
});

【讨论】:

  • return x.data.userStatuINT - y.data.userStatuINT 稍微容易一些。
  • @IngoBürk:是的,但它只适用于数字。其他人可能想用这个例子来做一些相关的事情。
  • Guffa,我的数组:users[usernames] = { userName : username, userId : id, userStatuINT : statu, userMobilemi : mobile, };
  • 它也适用于布尔值! :) 开玩笑。如果你想保持它的通用性,为什么不呢。只是想指出来。这样做没有错。
  • 添加: users[usernames] = { userName : username, userId : id, userStatuINT : statu, userMobilemi : mobile, };
猜你喜欢
  • 2013-07-16
  • 1970-01-01
  • 2021-12-15
  • 2021-11-25
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 2021-09-24
相关资源
最近更新 更多