基于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