我有一个被声明为var cars = new Map<string, object>();
的地图,其中string
是汽车的型号,object
包含了年份和价格等信息。
因此,这个Map
看起来会像这样:
Map = [
'BMW' => {
id: 123,
price: 2000,
models: {...}
},
'Opel' => {
id: 1234,
price: 3500,
models: {...}
},
....
]
我希望能按照价格字段(升序或降序)对所有条目进行排序。
我无法找到任何解决方案,因为迭代values
会丢失键,而像...cars.entries()
这样的解决方案并不适用,因为这些值不可迭代。
P.S. 我目前正在使用TypeScript,但JS的解决方案同样适用。
编辑:我尝试将地图转换为数组,如下所示:
const values = Array.from(this.cars.values());
values.sort((a, b) => {
return (a.price < b.price) ? -1 : 1;
});
但是我在重构Map以保留keys
时遇到了一些问题...