Lodash - 对象中的对象排序(desc 和 asc)
Lodash - sort objects in object ( desc and asc)
如何使用 Lodash 对对象的对象进行升序和降序排序?
例如我想按 'r' 或 'd' 排序。
这是我的对象的样子:
将内部对象放入数组并使用函数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
纯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>');
我正在根据数值对对象属性进行排序。它们的值可以是对象,您也可以根据这些对象 属性 值进行排序。但我无法评论做这一切背后的合理原因。
如何使用 Lodash 对对象的对象进行升序和降序排序?
例如我想按 'r' 或 'd' 排序。
这是我的对象的样子:
将内部对象放入数组并使用函数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
纯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>');
我正在根据数值对对象属性进行排序。它们的值可以是对象,您也可以根据这些对象 属性 值进行排序。但我无法评论做这一切背后的合理原因。