如何使用Ramda基于嵌套键对对象数组进行排序?

时间:2016-02-27 16:00:35

标签: javascript ramda.js

我从这样的对象开始:

const myObj = {
  key1: {a: 123, b: 'some field1'},
  key2: {a: 1, b: 'some field2'},
  key3: {a: 123123, b: 'some field3'}
}

我使用R.toPairs将其转换为数组,结果为:

[
  ["key1", {"a": 123, "b": "some field1"}], 
  ["key2", {"a": 1, "b": "some field2"}], 
  ["key3", {"a": 123123, "b": "some field3"}]
]

现在不确定如何在更深的键a上对此数组进行排序。我听说拉姆达的镜头可以提供帮助但不确定如何。我也对非镜片方法持开放态度。

1 个答案:

答案 0 :(得分:7)

一种直截了当的方式是组成两个道具:

R.sortBy(
    R.compose(
        R.prop('a'), R.prop(1)
    )
)
(R.toPairs(myObj))

如果您需要更多嵌套,请参阅this recipe