Flutter 按它对列表映射进行排序';保持颤振顺序的s值
我正在制作一个游戏,它需要分数和一个玩家的名字,然后我想按最高值对分数进行排序,并将其与得分的玩家的名字保持一致。我有两个选择,不知道哪一个最好,怎么做。第一种是:Flutter 按它对列表映射进行排序';保持颤振顺序的s值,flutter,dart,Flutter,Dart,我正在制作一个游戏,它需要分数和一个玩家的名字,然后我想按最高值对分数进行排序,并将其与得分的玩家的名字保持一致。我有两个选择,不知道哪一个最好,怎么做。第一种是: List<Map> myList = [ { 'name' : 'John', 'score': 23}, { 'name' : 'Frederick', 'score': 61}, { 'name' : 'Morgana', 'score': 48}, { 'name' : 'Spoke', 'scor
List<Map> myList = [
{ 'name' : 'John', 'score': 23},
{ 'name' : 'Frederick', 'score': 61},
{ 'name' : 'Morgana', 'score': 48},
{ 'name' : 'Spoke', 'score': 36},
];
预期产出为:
Frederick: 61
Morgana: 48
Spoke: 36
John: 23
首先是针对您的案例的最佳解决方案。因为名字和分数之间有关联。你不能这样分类:
myList.sort((person1, person2) => person2['score'] - person1['score'] );
首先是针对您的案例的最佳解决方案。因为名字和分数之间有关联。你不能这样分类:
myList.sort((person1, person2) => person2['score'] - person1['score'] );
最好的方法是在类上实现
类播放器实现了可比较的{
最后的字符串名;
最终智力得分;
常量玩家(this.name,this.score);
@凌驾
int compareTo(其他玩家){
返回other.score-score;
}
}
void main(){
球员名单=[
球员('约翰',23岁),
球员('Frederick',61岁),
球员('Morgana',48岁),
球员('发言',36),
];
players.sort();
打印(players.map((player)=>player.score));/(61,48,36,23)
}
最好的方法是在类上实现
类播放器实现了可比较的{
最后的字符串名;
最终智力得分;
常量玩家(this.name,this.score);
@凌驾
int compareTo(其他玩家){
返回other.score-score;
}
}
void main(){
球员名单=[
球员('约翰',23岁),
球员('Frederick',61岁),
球员('Morgana',48岁),
球员('发言',36),
];
players.sort();
打印(players.map((player)=>player.score));/(61,48,36,23)
}
Id强烈建议制作一个Player
对象,该对象的值为name
,score
,并且可能给它一个唯一的Id
。然后使用dart的sort()
方法列出玩家=[“所有玩家”]
players.sort(a,b)=>a.score.compareTo(b.score))
Id强烈建议制作一个Player
对象,该对象的值为name
,score
,并且可能给它一个唯一的Id
。然后使用dart的sort()
方法列出玩家=[“所有玩家”]
players.sort(a,b)=>a.score.compareTo(b.score))代码>