我正在寻找使用Ramda对嵌套对象数组进行排序的方法。我有一个数组:
const people = [
{ name: 'Emma', data:{ age: 70 }},
{ name: 'Peter', data:{ age: 78 }},
{ name: 'Mikhail', data:{ age: 62 }},
];
我想使用Ramda在数组上方排序。我得到了this,但对我不起作用。
将非常感谢您的帮助。
由于要按路径data.age
进行排序,您可以获取将为您提供对象的prop data
,然后对该对象再次使用prop以获取age
属性。要创建执行此操作的功能,可以使用R.compose()
:
const byAge = R.ascend(R.compose(R.prop('age'), R.prop('data')));
const people = [
{ name: 'Emma', data:{ age: 70 }},
{ name: 'Peter', data:{ age: 78 }},
{ name: 'Mikhail', data:{ age: 62 }},
];
const peopleByYoungestFirst = R.sort(byAge, people);
console.log(peopleByYoungestFirst);
//=> [{"name":"Mikhail","data":{"age":62}},{"name":"Emma","data":{"age":70}},{"name":"Peter","data":{"age":78}}]