重新排序数组
Reordering an array
我有一个像这样的数组:
var array = [
{
name : "Bob",
score : 27
},
{
name : "Fred",
score : 32
},
{
name : "Brad",
score : 43
}
]
所有项目最初按分数排序。在某些点,分数可能会改变,我想重新排序数组。
我现在做的是我从数组中删除球员,我更新分数,然后我循环遍历数组找到正确的位置来插入它(因为数组的其余部分仍然排序)。
是否有一种更优雅的方式来做到这一点,例如使用underscore.js ?
谢谢
您可以使用sortBy
函数进行排序,例如:
function sortBy(f, xs) {
var compare = function(x, y) {
return typeof x == 'number' ? x - y
: x > y ? 1
: x < y ? -1
: 0;
};
return xs.sort(function(x, y) {
return compare(f(x), f(y));
});
};
然后像这样使用:
sortBy(function(x){return x.score}, array);
或者使用额外的帮助器来实现可重用性:
function dot(x) {
return function(xs) {
return xs[x];
}
}
sortBy(dot('score'), array);
sortBy(dot('name'), array);
...
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- Javascript中的多维数组排序索引问题
- 如何按日期对Javascript对象数组排序
- 数组排序后显示更改
- 当许多元素相等时,Javascript数组排序无法正常工作
- Javascript数组排序速度受字符串长度的影响
- 按唯一键将对象数组排序为数组
- 以 js 为单位的数组排序
- js 数组排序无法正常工作
- 数组排序.论点从何而来
- 不需要的数组排序
- 数组排序不正确/不可预测,使用 indexOf 时
- Javascript将数组排序到树中
- 随后的多维数组排序会产生意外的结果
- 数组排序基于纯javascript搜索文本匹配
- Javascript自定义数组按数组排序
- 使用字符串按属性错误对对象进行数组排序
- 多维数组排序
- JavaScript与PHP在数组排序中的对比
- Javascript-关联数组排序