使用_.groupBy对对象进行反向排序

时间:2018-05-21 12:57:35

标签: javascript underscore.js

所以我有一个对象数组,我正在使用underscore.js'_.groupBy函数来处理特定情况。如何通过键获得_.groupBy反向排序?

我有这个----

stooges = [
  {name: 'moe', age: 40}, 
  {name: 'larry', age: 50}, 
  {name: 'curly', age: 60}, 
  {name: 'moe', age: 40}, 
  {name: 'larry', age: 50}, 
  {name: 'curly', age: 60}
]

groupBy给了我这个---

_.groupBy(stooges, 'age');
=> {
  "40": [{name: 'moe', age: 40}, {name: 'moe', age: 40}],
  "50": [{name: 'larry', age: 50}, {name: 'larry', age: 50}],
  "60": [{name: 'curly', age: 60}, {name: 'curly', age: 60}]
 }

我希望groupBy给我这个---

=> {
      "60": [{name: 'curly', age: 60}, {name: 'curly', age: 60}]
      "50": [{name: 'larry', age: 50}, {name: 'larry', age: 50}],
      "40": [{name: 'moe', age: 40}, {name: 'moe', age: 40}],

   }

1 个答案:

答案 0 :(得分:0)

对象中的键没有明确定义的顺序 - 顺序可能会从执行变为执行,或从一个JavaScript引擎变为另一个。 (它可能没有,但如果你的代码依赖它,它可能随时中断。)

如果要按特定顺序枚举它们,请使用_.keys获取结果对象中的键数组,对该数组进行排序并枚举数组,从结果对象中获取相应的组。