我在代码部分发布了下面的地图。我想要实现的是,根据值递增地对地图进行排序。所以,在排序后, 我应该按照上一节所示对地图进行排序。
请让我知道如何实现这一目标。
码:
const obj1 = new Object();
const obj2 = new Object();
const obj3 = new Object();
const obj4 = new Object();
const map2 = {};
map2[obj1] = 10;
map2[obj2] = -20;
map2[obj3] = 0;
map2[obj4] = 40;
排序后:
map2[obj2] = -20;
map2[obj3] = 0;
map2[obj1] = 10;
map2[obj4] = 40;
答案 0 :(得分:2)
您没有显示map2
变量是什么,但这可以通过使用本机数组方法轻松处理,主要是sort:
var map2 = new Map();
var obj1 = new Object();
var obj2 = new Object();
var obj3 = new Object();
var obj4 = new Object();
var map = [{
obj: obj1,
value: 10
},
{
obj: obj2,
value: -20
},
{
obj: obj3,
value: 0
},
{
obj: obj4,
value: 40
},
]
.sort(function(a, b) {
return a.value - b.value;
});
console.log(map);
答案 1 :(得分:1)
如果map2
是真实的Map
,则它就像:
map2 = new Map([...map2.entries()].sort((a, b) => a.value - b.value));