我具有以下对象键结构:
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: [...]}
}