Fab*_*llo 2 javascript arrays sorting
我正在寻找一种简单的方法来在javascript中按值对Map进行排序.我在这里找到了函数Object.keys(myMap)
,但它返回一个字符串数组.在我的情况下,键不是字符串而是复杂的对象,然后结果不是很好(数组是空的......).你知道另一种方式吗?
编辑
我的目的的解释:我有一个Map<myClass, Array<myClass>>
,我想要从最短到最长的值(数组)的长度对这个地图进行排序.
您不能直接对Map进行排序,但可以将其转换为数组,对其进行排序并创建新Map:
m = new Map()
m.set({x:1}, [1,2,3]);
m.set({x:2}, [1,2,3,4]);
m.set({x:3}, [1,2]);
m.set({x:4}, [1,2,3,4,5]);
m.set({x:5}, [1]);
// can also use Array.from polyfill here
a = [];
for(var x of m)
a.push(x);
a.sort(function(x, y) {
return x[1].length - y[1].length;
});
sorted = new Map(a);
for(var x of sorted)
document.write(JSON.stringify(x) + "<br>");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6876 次 |
最近记录: |