首页 文章

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

提问于
浏览
1

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

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

这是我的对象的样子:

enter image description here

2 回答

  • 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
    
  • 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>');
    

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

相关问题