按javascript中的值对Map进行排序
sort Map by value in javascript
我正在寻找一种在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>");
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 使用promise和mongoose对文档进行排序
- Selectize.js:如何对整数值的选项进行排序
- Javascript排序的图像弹出窗口..可以't单独弹出
- 如何通过引用var Using DataTables来进行分页或排序
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- AngularJs对所有页面中的所有记录进行排序
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- 在下划线中使用_(obj).map(callback)和_.map(obj,callback)之间的区别
- 按从高到低对多个int变量进行排序
- jQuery UI可排序-多连接列表拖动
- Javascript排序字符串或数字
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- 使用map来检查是否为真'不起作用
- sort而不是排序javascript
- 通过从节点父级获取所有子级对节点进行排序(获取子级数组)
- 按javascript中的值对Map进行排序
- 在 async.map 运行时对数组进行排序
- 在Immutable.js的Map中,按子对象的属性排序的正确方法是什么?
- AngularJS填充Java Map中的ng选项.(排序问题)