如何使用下划线js对JavaScript对象进行排序?
下面是我的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
{
"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]];
返回项[键][“通知”];
});
控制台日志(已排序)代码>
对象中没有顺序您希望使用数组而不是对象。也许可以将对象的键设为另一个属性,这样您就可以拥有对象数组。对象中没有顺序。您希望拥有数组而不是对象。也许可以将对象的键设为另一个属性,这样就可以拥有一个对象数组