Lodash基于键的对象排序列表

时间:2017-03-16 06:52:10

标签: javascript node.js lodash

我正在寻找基于键

排序对象列表

这是我的对象

var Categories =    {

      "social": [
        {
          "id": "social_001",
          "lastModified": "2 Day ago"
        }
      ],
"communication": [
        {
          "id": "communication_001",
          "lastModified": "4 Day ago"
        },
        {
          "id": "communication_002",
          "lastModified": "1 Day ago"
        }
      ],
      "storage": [
        {
          "id": "storage_001",
          "lastModified": "3 Day ago"
        }
      ]
    }

所以输出排序对象将从通信开始排序,        社交,        的存储 建议我一些帮助。

2 个答案:

答案 0 :(得分:7)

这是使用lodash的解决方案:

var Categories = {
  "social": [
    {
      "id": "social_001",
      "lastModified": "2 Day ago"
    }
  ],
  "communication": [
    {
      "id": "communication_001",
      "lastModified": "4 Day ago"
    },
    {
      "id": "communication_002",
      "lastModified": "1 Day ago"
    }
  ],
  "storage": [
    {
      "id": "storage_001",
      "lastModified": "3 Day ago"
    }
  ]
}

var ordered = {};   
_(Categories).keys().sort().each(function (key) {
  ordered[key] = Categories[key];
});

Categories = ordered;

答案 1 :(得分:0)

使用lodash _.keysObject.keys从您的对象获取密钥数组,并使用JavaScript sort()sort().reverse()按升序或降序对该数组进行排序。

然后使用此数组来拾取每个对象 yourObject[array[0]]