按属性值对对象排序

时间:2019-12-18 15:50:58

标签: javascript typescript

我具有以下对象键结构:

var obj = {
  "1": {name: "test", groups: [...]},
  "2": {name: "best", groups: [...]},
  "4": {name: "pick", groups: [...]}  
}

我想按属性“名称”值对“ obj”进行排序。

所需结果:

var obj = {
  "2": {name: "best", groups: [...]},
  "4": {name: "pick", groups: [...]},
  "1": {name: "test", groups: [...]}  
}

到目前为止,我尝试使用lodash库toPairs(),fromPairs()和sortBy()方法进行尝试:

var toPairs = _.toPairs(obj);

var test = _.sortBy(toPairs, [function (o) {                
                 return o[1].name;
            }]);

'test'变量包含一个数组,其中的值按需要进行排序:

“测试”输出:

[["2", {name: "best", ...}], ["4", {name: "pick", ...}],["1", {name: "test"}]]

但是当我使用fromPairs()方法将数组转换回对象时,结果对象未排序:

var sortedObj = _.fromPairs(test); 

“ SortedObj”输出:

{
  "1": {name: "test", groups: [...]},
  "2": {name: "best", groups: [...]},
  "4": {name: "pick", groups: [...]}  
}

0 个答案:

没有答案
相关问题