我正在试着按他的名字对这份球员名单进行排序,但没用

var player = [
  {"name": "Ronaldo", "nation": "Portugal", "age": 30},
  {"name": "Messi", "nation": "Argentina", "age": 30},
  {"name": "Dibala", "nation": "Portugal", "age": 30},
  {"name": "Maria", "nation": "Argentina", "age": 30},
  {"name": "Alves Dani", "nation": "Portugal", "age": 30},
];

var sortedAscending = [];

void main(List<String> args) {
  for (var item in player) {
    final sorted = Map.fromEntries(
        item.entries.toList()..sort((e1, e2) => e1.key.compareTo(e2.key)));
    print(sorted);
    sortedAscending.add(sorted);
  }
  print(sortedAscending);
}

// Expect Result
// [
//   {"name": "Alves Dani", "nation": "Portugal", "age": 30},
//   {"name": "Dibala", "nation": "Portugal", "age": 30},
//   {"name": "Maria", "nation": "Argentina", "age": 30},
//   {"name": "Messi", "nation": "Argentina", "age": 30},
//   {"name": "Ronaldo", "nation": "Portugal", "age": 30},
// ];

我已经try 使用Map.FromEntry,但不太顺利

推荐答案

试试这个:

var player = [
      {"name": "Ronaldo", "nation": "Portugal", "age": 30},
      {"name": "Messi", "nation": "Argentina", "age": 30},
      {"name": "Dibala", "nation": "Portugal", "age": 30},
      {"name": "Maria", "nation": "Argentina", "age": 30},
      {"name": "Alves Dani", "nation": "Portugal", "age": 30},
    ];

 void sort(){

    player.sort((e1, e2) => e1['name'].toString().compareTo(e2['name'].toString()));

    print(player);
 }

Flutter相关问答推荐

未处理异常:字符串类型不是值类型子类型的子类型'

当仅点击一行时,所有行都被选中

出现异常.RangeError(RangeError(index):无效值:有效值范围为空:0).分度误差

脚本具有不受支持的MIME类型(';Text/html';).(messaging/failed-service-worker-registration)

将记录/元组用作SplayTreeMap中的键

如何将小部件代码移动到另一个文件以获得更好的可读性

如何在 Dart/Flutter 中克隆 Future

如何在 Flutter 中创建具有渐变背景色的自定义 Snackbar?

如何拥有 StreamProvider 的多个侦听器,其中稍后添加的侦听器接收最新数据?

无状态小部件被奇怪地重建

Android 模拟器在 Apple M2 芯片 EXC_BAD_ACCESS / KERN_INVALID_ADDRESS 上随机崩溃

Elevated 和 Outlined 按钮之间的动画

java.lang.IncompatibleClassChangeError:找到接口 com.google.android.gms.location.SettingsClient,

Android Studio - Electric Eel 2022.1.1 更新 destruct 了 dart 文件图标

如何更改中心的圆形进度指示器

我正在try 使用 Firebase 在 Flutter 中使用 Google 注销,但它不起作用

Flutter 用户过滤器

更新未知文档 ID firebase\flutter 中的字段

http响应在Flutter 中返回307

单击列表视图导航到 Flutter 中的另一个页面