Ramda嵌套对象的排序数组

问题描述 投票:1回答:1

我正在寻找使用Ramda对嵌套对象数组进行排序的方法。我有一个数组:

const people = [
  { name: 'Emma', data:{ age: 70 }},
  { name: 'Peter', data:{  age: 78 }},
  { name: 'Mikhail', data:{  age: 62 }},
];

我想使用Ramda在数组上方排序。我得到了this,但对我不起作用。

将非常感谢您的帮助。

javascript reactjs ramda.js
1个回答
0
投票

由于要按路径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}}]
© www.soinside.com 2019 - 2024. All rights reserved.