首页 > 解决方案 > 按其值排序列表映射,保持 Flutter 中的顺序

问题描述

我正在制作一个需要分数和玩家姓名的游戏,之后我想按最高值对分数进行排序,并保留得分的玩家姓名。我有两个选择,不知道哪个最好以及如何去做。第一个是这样的:

List<Map> myList = [
  { 'name' : 'John', 'score': 23},
  { 'name' : 'Frederick', 'score': 61},
  { 'name' : 'Morgana', 'score': 48},
  { 'name' : 'Spoke', 'score': 36},
];

第二个是:

var info = {
  "name": ['John', 'Frederick', 'Morgana', 'Spoke'],
  "score": [23, 61, 48, 36],

};

预期的输出是:

Frederick: 61
Morgana: 48
Spoke: 36
John: 23

标签: flutterdart

解决方案


首先是适合您情况的最佳解决方案。因为它在名称和分数之间有关联。你不能这样排序:

myList.sort((person1, person2) => person2['score'] - person1['score'] );

推荐阅读