JSON:
[
{ score: 0.648 },
{ score: 0.945 }
]
Javascript:
_.sortBy(array, function(obj){ return obj.score });
但是,这仅返回原始数组的副本。什么也没有变。我想按分数降序对数组进行排序。任何想法如何做到这一点?
JSON:
[
{ score: 0.648 },
{ score: 0.945 }
]
Javascript:
_.sortBy(array, function(obj){ return obj.score });
但是,这仅返回原始数组的副本。什么也没有变。我想按分数降序对数组进行排序。任何想法如何做到这一点?
如果要按降序排序,补分:
_.sortBy(array, function(obj) { return -obj.score; });
对于一般的数组排序,在 Underscore 的世界之外,您可以.sort()
在 JavaScript 数组原型上使用本机。它将数组的两个实际元素作为参数,并且应该根据两个元素之间的排序关系返回一个小于、等于或大于零的数字。
在你的情况下,这看起来像:
array.sort(function(o1, o2) {
return -(o1.score - o2.score); // or just return o2.score - o1.score if you like
}
这种方案要灵活得多,因为排序机制可以让您完全控制并且不做任何假设(除了您的比较函数是一致的;如果不是,您会得到奇怪的行为)。