在javascript中,有没有一种简单的方法可以按值对键值对进行排序并返回键?
在javascript中,有没有一种简单的方法可以按值对键值对进行排序(假设值是数字)并返回键?一个 jQuery 方法来做到这一点也很有用。
(这里有很多关于键值对的相关问题,但我找不到专门关于排序的问题。)
In javascript, is there an easy way to sort key-value pairs by the value (assume the value is numeric), and return the key? A jQuery way to do this would be useful as well.
(There are a lot of related questions about key-value pairs here, but I can't find one specifically about sorting.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
跨浏览器要做到这一点并不容易。假设有一个数组,例如
...,您可以获得按
value
排序的key
属性数组,如下所示:There's nothing easy to do this cross-browser. Assuming an array such as
... you can get an array of the
key
properties sorted byvalue
as follows:假设我们有一个
Objects
的Array
,例如:我们可以调用
Array.prototype.sort()
帮助,使用Array.prototype.map()
help 映射新数组和Object.keys()
help 获取密钥:请注意,
Array.prototype.map()
需要 Javascript 1.6,Object.keys()
是 ECMAscript5(需要 Javascript 1.8.5)。您将在 MDC 上找到所有这些方法的替代代码。
Let's assume we have an
Array
ofObjects
, like:We can call
Array.prototype.sort()
help, useArray.prototype.map()
help to map a new array andObject.keys()
help to grab the key:Be aware of,
Array.prototype.map()
requires Javascript 1.6 andObject.keys()
is ECMAscript5 (requires Javascript 1.8.5).You'll find alternative code for all those methods on MDC.
据我所知,没有内置的 Javascript 函数可以按数组的键对数组进行排序。
但是,不需要太多代码即可完成此操作:只需将键提取到自己的数组中,使用正常的
sort
函数对它们进行排序,然后按正确的顺序重建数组即可。像这样的事情应该可以解决问题:现在你可以像这样调用你的函数:
输出将是:
希望有帮助。
此处的工作测试页面:http://jsfiddle.net/6Ev3S/
As far as I know, there isn't a built-in Javascript function to sort an array by its keys.
However, it shouldn't take too much code to do it: just extract the keys into their own array, sort them using the normal
sort
function, and rebuild the array in the right order. Something like this should do the trick:Now you can just call your function like so:
And the output will be:
Hope that helps.
Working test page here: http://jsfiddle.net/6Ev3S/
给定
您可以使用以下命令按
object
的键的值对它们进行排序:
Given
You can sort
object
's keys by their values using the following:Result
如果您不能依赖扩展的数组和对象属性,
您可以使用原始的数组方法 -
If you can't count on the exended array and object properties,
you can use the original Array methods-