【发布时间】:2014-10-19 10:53:39
【问题描述】:
这是我的字典:
const dict = {
"x" : 1,
"y" : 6,
"z" : 9,
"a" : 5,
"b" : 7,
"c" : 11,
"d" : 17,
"t" : 3
};
我需要一种方法来将我的dict 字典从最小到最大或从最大到最小排序。或者即使我有一个带有排序键的数组也可以。但我不知道如何使用javascript 来做这样的事情。我在使用python之前已经做到了,像这样:
import heapq
from operator import itemgetter
thirty_largest = heapq.nlargest(8, dict.iteritems(), key=itemgetter(1))
我在 Google 中搜索过,发现数组有 sort() 函数但没有字典。所以我的问题是:如何对字典进行排序或按排序顺序获得前 5 个最大值?
【问题讨论】:
-
在 JS 中,你有对象(不是字典)。关于这个主题有一些关于 SO 的问题......你可以看看例如:Sorting JavaScript Object by property value.
-
它似乎是按价值计算的,见最后一行:get top 5 maximum values...
-
由于javascript中的对象(字典)没有顺序,排序这样的东西没有意义。因此,我强烈建议您将标题更改为“我如何获得前 5 个最大值”以避免人们关闭此问题。
-
他说他想按字典的键对字典进行排序。 JS 中不存在字典,因此我们可以构建一个键/值有序结构来满足他的需求,它看起来像一个“字典”。没必要改变他的问题。我认为这是来自其他语言的人的常见问题,所以我认为这个标题应该保持原样
-
Object.keys(dict).sort()返回一个键排序的数组。然后,您可以在需要时使用它来遍历字典。
标签: javascript sorting object dictionary