Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/16.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_Json - Fatal编程技术网

如何对javascript对象进行排序?

如何对javascript对象进行排序?,javascript,json,Javascript,Json,以下是我的物品: var user1 = new Object(); user1.username = "user1"; user1.sex="m"; user1.age=20; var user2 = new Object(); user2.username = "user1"; user2.sex="f";user2.age=30; var user3 = new Object(); user3.username = "user3"; user3.sex="f";user3.age=22

以下是我的物品:

var user1 = new Object();
user1.username = "user1"; user1.sex="m"; user1.age=20;

var user2 = new Object();
user2.username = "user1"; user2.sex="f";user2.age=30;

var user3 = new Object();
user3.username = "user3"; user3.sex="f";user3.age=22;

var users = {"john":user1, "jerry": user2, "marry":user3};

<>我如何按年龄排序用户?

首先,考虑将用户存储在一个数组中,而不是对象

var users = [user1, user2, user3];
然后需要一个排序函数

//a and be will be passed in, you need to tell it which one is greater
function sortByAge(a,b) {

  if (a.age > b.age) return 1;
  if (a.age < b.age) return -1;
  /* else */ return 0;

  //how I had it previously that people commented on
  //return a.age > b.age;  
}

这是无数问题的重复,请使用搜索。JavaScript对象不是JSON。不知道您的实现,但
用户
应该是
数组
而不是
对象
。然后搜索一个算法来对对象数组进行排序。a)这里没有JSON,这不是JSON。JSON是数据的字符串表示(恰好基于JavaScript语法)。b) JavaScript对象是无序的。如果您需要特定的订单,请使用array.P.S。使用
user1={}而不是
var user1=new Object()。你也可以做
var user1={username:'user1',性别:'m',年龄:20}
@CharlieWynn您确切问题的答案在链接上的公认答案中:P@Jehanzeb.Malik ¯_(ツ)_/''甚至没有意识到这是某种联系:P@Bergi我甚至无法解释我这样做了多久-谢谢你的链接!@CharlieWynn:因为
age
是一个int,你实际上可以
返回a.age-b.age;
inside
sortByAge()
。比较函数只需返回任何正数、负数或零。
users.sort(sortByAge);