使用ramda.js中的嵌套字段进行排序

Vis*_*hnu 1 javascript ramda.js

sortBy的文档中,它说我们可以使用R.prop对对象进行字段排序。但是,如果我必须按嵌套字段排序,则无法正常工作。例如R.prop('id.number')不起作用。

var items = [{id:3},{id:1},{id:2}];
var sorter = R.sortBy(R.prop('id'));
sorter(items)
Run Code Online (Sandbox Code Playgroud)

工作正常。但是如果我有一个嵌套的结构

var items = [{id:{number:3}},{id:{number:1}},{id:{number:2}}];
var sorter = R.sortBy(R.prop('id.number'));
sorter(items)
Run Code Online (Sandbox Code Playgroud)

向我返回一个空列表。我猜有一种我无法弄清楚的使用R.prop的正确方法。

Sco*_*her 5

您可以使用R.path来访问嵌套属性,因此您的示例将成为R.sortBy(R.path(['id', 'number']))