Lodash - 对象中的对象排序(desc和asc)

时间:2016-04-15 10:22:21

标签: javascript arrays html5 object lodash

如何使用Lodash对对象asc和desc进行排序?

例如,我想按'r'或'd'排序。

这就是我的对象的样子:

enter image description here

2 个答案:

答案 0 :(得分:1)

将内部对象放在数组中并使用函数sortBy()

var users = [
 { 'user': 'fred',   'age': 48 },
 { 'user': 'barney', 'age': 36 },
 { 'user': 'fred',   'age': 40 },
 { 'user': 'barney', 'age': 34 }
];

_.sortBy(users, function(o) { return o.user; });
// → objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
console.log(users.reverse()); // desc order

答案 1 :(得分:0)

纯JS也很简单,你可以这样做;

var   obj = {a:16, b:2, c:8, d:4, e:1},
    okeys = Object.keys(obj),
   sorted = {};
okeys.sort((p,c) => obj[p] <= obj[c]).forEach((p,i) => sorted[okeys[i]] = obj[p]);
document.write('<pre> ' + JSON.stringify(sorted, 0, 2) + '</pre>');

我根据数值对对象属性进行排序。它们的值可以是对象,您也可以根据这些对象的属性值进行排序。但是,我不能评论做这一切背后的明智原因。