javascript中按值对映射进行排序

javascript中按值对映射进行排序,javascript,arrays,sorting,Javascript,Arrays,Sorting,我正在寻找一种在javascript中按值对地图排序的简单方法。我找到了函数Object.keys(myMap),但它返回一个字符串数组。在我的例子中,键不是字符串而是复杂的对象,那么结果就不是很好(数组是空的…)。你知道另一条路吗 编辑 解释我的目的:我有一个映射,我想按照值(数组)的长度从最短到最长对该映射进行排序。您不能直接对映射进行排序,但可以将其转换为数组,对其进行排序并创建新映射: m=newmap() m、 集合({x:1}[1,2,3]); m、 集合({x:2}[1,2,3,

我正在寻找一种在javascript中按值对地图排序的简单方法。我找到了函数
Object.keys(myMap)
,但它返回一个字符串数组。在我的例子中,键不是字符串而是复杂的对象,那么结果就不是很好(数组是空的…)。你知道另一条路吗

编辑


解释我的目的:我有一个
映射
,我想按照值(数组)的长度从最短到最长对该映射进行排序。

您不能直接对映射进行排序,但可以将其转换为数组,对其进行排序并创建新映射:

m=newmap()
m、 集合({x:1}[1,2,3]);
m、 集合({x:2}[1,2,3,4]);
m、 集合({x:3}[1,2]);
m、 集合({x:4}[1,2,3,4,5]);
m、 集合({x:5}[1]);
//也可以在此处使用Array.from polyfill
a=[];
对于(变量x/m)
a、 推(x);
a、 排序(函数(x,y){
返回x[1]。长度-y[1]。长度;
});  
排序=新地图(a);
for(已排序的变量x)

document.write(JSON.stringify(x)+“
无法对映射进行排序,因为它们在内部使用哈希。你能举例说明吗?@R3tep methinks OP means你能提供一些代码吗?这个问题非常令人困惑,因为你同时谈论地图、数组、对象和字典(它们都是不同的东西)。编辑中的代码甚至不是JavaScript。@FabrizioMorello字典在您的标记中构造函数
new Map(a)
不起作用,它说“提供的参数与调用目标的任何签名都不匹配”。是不是因为我用的是TypeScript而不是JavaScript编码?@FabrizioMorello:可能是。。。我不知道,有没有办法在线测试呢?我不知道。不管怎样,您的解决方案似乎是正确的,既然我问了一个javascript解决方案,我就将它标记为已接受。