Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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
如何使用下划线js对JavaScript对象进行排序?_Javascript_Sorting_Underscore.js - Fatal编程技术网

如何使用下划线js对JavaScript对象进行排序?

如何使用下划线js对JavaScript对象进行排序?,javascript,sorting,underscore.js,Javascript,Sorting,Underscore.js,下面是我的JavaScript对象 { "014b9d42":{ "notification": 0, "userName": "adam" }, "02f5b60e": { "notification": 3, "userName": "jake" }, "1281d8fb": { "notification": 1, "userName": "eomer" }, "12a2a564": { "notifica

下面是我的JavaScript对象

{
  "014b9d42":{
    "notification": 0,
    "userName": "adam"
  },
  "02f5b60e": {
    "notification": 3,
    "userName": "jake"
  },
  "1281d8fb": {
    "notification": 1,
    "userName": "eomer"
  },
  "12a2a564": {
    "notification": 0,
    "userName": "bella"
  }
}
我想根据通知的值对上述对象进行排序。我如何使用下划线js来实现它?

正如@adeneo所指出的。您需要将对象转换为数组,然后根据
通知
属性进行排序

var jsonObj = JSON;

var arr = [];
for (var key in jsonObj) {
  if (jsonObj.hasOwnProperty(key)) {
    var o = jsonObj[key];
    arr.push({ id: key, notification: o.notification, userName: o.userName });
  }
}

arr.sort(function(obj1, obj2) {
  return obj1.notification - obj2.notification;
});
正如@adeneo所指出的,这里有一个。您需要将对象转换为数组,然后根据
通知
属性进行排序

var jsonObj = JSON;

var arr = [];
for (var key in jsonObj) {
  if (jsonObj.hasOwnProperty(key)) {
    var o = jsonObj[key];
    arr.push({ id: key, notification: o.notification, userName: o.userName });
  }
}

arr.sort(function(obj1, obj2) {
  return obj1.notification - obj2.notification;
});

这里有一个。

您提供的JSON不是一个列表。因此无法对其进行排序。如果这是一个列表,则可以使用以下代码:

var a=[
{“014b9d42”:{
“通知”:0,
“用户名”:“亚当”
}},
{“02f5b60e”:{
“通知”:3,
“用户名”:“杰克”
}},
{“1281d8fb”:{
“通知”:1,
“用户名”:“eomer”
}},
{“12a2a564”:{
“通知”:0,
“用户名”:“贝拉”
}}
];
var sorted=u.sortBy(a,函数(项){
var key=[Object.keys(item)[0]];
返回项[键][“通知”];
});
控制台日志(已排序)

您提供的JSON不是列表。因此无法对其进行排序。如果这是一个列表,则可以使用以下代码:

var a=[
{“014b9d42”:{
“通知”:0,
“用户名”:“亚当”
}},
{“02f5b60e”:{
“通知”:3,
“用户名”:“杰克”
}},
{“1281d8fb”:{
“通知”:1,
“用户名”:“eomer”
}},
{“12a2a564”:{
“通知”:0,
“用户名”:“贝拉”
}}
];
var sorted=u.sortBy(a,函数(项){
var key=[Object.keys(item)[0]];
返回项[键][“通知”];
});
控制台日志(已排序)

对象中没有顺序您希望使用数组而不是对象。也许可以将对象的键设为另一个属性,这样您就可以拥有对象数组。对象中没有顺序。您希望拥有数组而不是对象。也许可以将对象的键设为另一个属性,这样就可以拥有一个对象数组