基于Javascript中两个对象属性之和的排序列表

基于Javascript中两个对象属性之和的排序列表,javascript,sorting,ramda.js,Javascript,Sorting,Ramda.js,我有这些对象的列表: var alice = { name: 'Alice', a: 2, b: 8 }; var bob = { name: 'Bob', a: 4, b: 5 }; var clara = { name: 'Clara', a: 1, b: 22 }; 我想根据a和b属性的总和对它们进行升序或降序排序(作为参数传递),即对于降序情况,列表必须按以下顺序排序:clara(总计:23)、alice(总计:10)、bob(总计:9) 在java

我有这些对象的列表:

var alice = {
  name: 'Alice',
  a: 2,
  b: 8
};
var bob = {
  name: 'Bob',
  a: 4,
  b: 5
};
var clara = {
  name: 'Clara',
  a: 1,
  b: 22
};
我想根据
a
b
属性的总和对它们进行升序或降序排序(作为参数传递),即对于降序情况,列表必须按以下顺序排序:clara(总计:23)、alice(总计:10)、bob(总计:9)

在javascript中,最好的方法是什么?使用
Ramda.js
的解决方案更可取/可接受


谢谢

检查纯js和Ramda.js中的解决方案

var alice={
名字:“爱丽丝”,
答:2,,
b:8
};
var bob={
姓名:'鲍勃',
a:4,
b:5
};
var clara={
姓名:“克拉拉”,
答:1,,
b:22
};
变量数组=[alice,bob,clara];
//纯js解决方案
变量比较fn=(obj1,obj2)=>{
var sum1=obj1.a+obj1.b;
var sum2=obj2.a+obj2.b;
返回sum2-sum1;
};
var array1=array.sort(比较fn);
控制台日志(array1);
//将Ramda.js与上面的比较函数相结合。
var array2=R.sort(比较fn,数组);
控制台日志(array2);
//使用Ramda.js解决方案
var sortFn=R.sortBy(R.compose(R.sum,R.props(['a','b']));
var array3=R.reverse(sortFn(数组));
控制台日志(array3)

为什么这里有这么多的反对票?好的。。我在读你的评论之前回答了。希望我的回答能有所帮助。谢谢,我对最后一个很感兴趣,因为我想用
sortBy