使用下划线排序依据对对象进行排序
Using underscores sortBy to sort objects
JSON:
[
{ score: 0.648 },
{ score: 0.945 }
]
Javascript:
_.sortBy(array, function(obj){ return obj.score });
但是,这只返回原始数组的副本。一切都没有改变。我想以降序方式按分数对数组进行排序。有什么想法吗?
如果要
按降序排序,请补充分数:
_.sortBy(array, function(obj) { return -obj.score; });
对于一般的数组排序,在 Underscore 之外,您可以在 JavaScript Array 原型上使用本机.sort()
。 它接受数组的两个实际元素作为参数,并且应返回一个小于、等于或大于零的数字,具体取决于两个元素之间的排序关系。
在您的情况下,这看起来像:
array.sort(function(o1, o2) {
return -(o1.score - o2.score); // or just return o2.score - o1.score if you like
}
这个方案要灵活得多,因为排序机制让你完全控制,不做任何假设(除了你的比较函数是一致的;如果不是,你会得到奇怪的行为)。
相关文章:
- 在循环Handlebars之前重新排序对象键
- 将SortedMap从Java转换为Javascript中可读的排序对象
- 模仿`overflow-y:auto;overflow-x:visible `在jQuery UI可排序对象上
- Javascript排序对象日期
- Jquery UI:如何指示可拖动对象成功拖放到可排序对象上
- 删除数组中重复的未排序对象
- Javascript 递归地排序对象和嵌套对象以及数组
- 如何在目标可排序对象接收后获取拖动项的类
- Javascript:排序对象挑战
- 在 JavaScript 中合并多个排序对象数组的最有效方法是什么?
- 如何在角度UI中加载保存的可排序对象
- 任意重新排序和排序对象文字的 JavaScript 数组
- 使用下划线在javascript中重新排序对象
- 排序对象的多维数组与一个可变的深度在Javascript
- 在javascript中,排序对象不会传递给字符串变量
- JavaScript快速排序对象
- 在JavaScript数组中按键值排序对象
- 用布尔值排序对象
- 如何在D3.js中通过JSON文件解析按键排序对象
- Javascript如何按键排序对象,但不破坏原始对象的顺序