下划线组sorting

我有一个关于函数式编程的问题。

我使用underscore.js库。

让我们考虑一些用例。 我有一些重复标签的数组,我需要计算每个标签在数组中的出现次数,并根据出现次数进行sorting。

为了计算,我可以使用countBy多less个标签

_.countBy([1, 2, 3, 4, 5], function(num) { return num % 2 == 0 ? 'even': 'odd'; }); => {odd: 3, even: 2} 

但在这里,因为我有一个散列,这对订单没有意义,所以没有sorting。 所以在这里,我需要将散列转换为数组然后对其进行sorting并将其转换为散列。

我很确定有这样一个优雅的方式,但我没有意识到这一点。 我将不胜感激任何帮助。

对其进行sorting并向后转换为散列。

不,那会再次下令。

你可以使用

 var occurences = _.countBy([1, 2, 3, 4, 5], function(num) { return num % 2 == 0 ? 'even': 'odd'; }); // {odd: 3, even: 2} var order = _.sortBy(_.keys(occurences), function(k){return occurences[k];}) // ["even", "odd"] 

或者也许只是

 _.sortBy(_.pairs(occurences), 1) // [["even", 2], ["odd", 3]]