Javascript 如何按值而不是键对地图对象数据进行排序?

Javascript 如何按值而不是键对地图对象数据进行排序?,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我正在尝试查看是否有一种方法可以不按键(app.id)而是按值(app.description)对地图对象数据进行排序。例如,我使用以下代码获得以下数据: let newMap = new Map(); _.forEach(this.props.applicationTypes.APPLICATION_TYPE, (appType) => { newMap.set(appType.id, appType.description); }); this.setState({applicat

我正在尝试查看是否有一种方法可以不按键(app.id)而是按值(app.description)对地图对象数据进行排序。例如,我使用以下代码获得以下数据:

let newMap = new Map();
_.forEach(this.props.applicationTypes.APPLICATION_TYPE, (appType) => {
  newMap.set(appType.id, appType.description);
});
this.setState({applicationTpeMap: newMap});

[[Entries]]
  0: {234 => "Technical Assistance"}
  1: {235 => "Initiative Project"}
  2: {236 => "Project scoping"}
  3: {231 => "Plan"}
  4: {232 => "Project"}
  5: {233 => "Management Cost"}
我可以使用javascript的排序方法对这些数据进行排序,但它会根据id对数据进行排序,如下所示:

let newMap = new Map();
_.forEach(this.props.applicationTypes.APPLICATION_TYPE, (appType) => {
  newMap.set(appType.id, appType.description);
});
const mapAsc = new Map([...newMap.entries()].sort());
this.setState({applicationTpeMap: mapAsc});

[[Entries]]
  0: {231 => "Plan"}
  1: {232 => "Project"}
  2: {233 => "Management Cost"}
  3: {234 => "Technical Assistance"}
  4: {235 => "Initiative Project"}
  5: {236 => "Project scoping"}
我要查找的是这样的内容,其中数据按如下描述进行排序:

所需输出:

[[Entries]]
0: {235 => "Initiative Project"}
1: {233 => "Management Cost"}
2: {231 => "Plan"}
3: {232 => "Project"}
4: {236 => "Project scoping"}
5: {234 => "Technical Assistance"}
您可以使用
entries()
对该数组进行排序,并生成一个新的
映射

让newMap=newMap();
newMap.set(234,“技术援助”);
newMap.set(235,“倡议项目”);
newMap.set(236,“项目范围界定”);
新地图集(231,“平面图”);
newMap.set(232,“项目”);
newMap.set(233,“管理成本”);
const sorted=newMap([…newMap.entries()].sort((a,b)=>a[1].localeCompare(b[1]));
console.log([…sorted.entries()])

。作为控制台包装{最大高度:100%!重要;顶部:0;}
非常感谢@Hassan!这很有魅力。