【发布时间】:2015-02-20 14:45:23
【问题描述】:
我有一个格式如下的数组:
var series = [[horse,1],[cat,2],[dog,4],[dragon,4],[cow,6]]
为了根据第二个参数找到前 3 个元素,我对数组进行了排序。所以为此我使用下面的代码:
series.sort( function(a,b) {
if (a[1] === b[1]) {
return 0;
}
else {
return (a[1] < b[1]) ? 1 : -1;
}
});
效果很好。然后,如果我想找到前 3 个,我总是可以选择 [0,2]。但是,如果第 4 个值等于第 3 个值,那么我会错过它。在这种情况下,如果我要求前 3 个输出应该是 [[horse,1],[cat,2],[dog,4],[dragon,4] 因为dragon 和 dog 具有相等的值 (4)。所以,我想知道是否有一些我可以开箱即用的库或一些有效的算法来返回前 3 个值,这不一定意味着返回前 3 个元素数组?
【问题讨论】:
-
您不能手动检查第 3、第 4(等)元素,如果它们的值相等则添加到结果数组中?
-
大声笑,可能还有另外 1000 个具有相同值的元素..我不知道会有多少
-
如果您希望低数字排在第一位,则您的排序是倒退的。
-
是的,没错。这只是一个例子。
标签: javascript jquery arrays