var list = [
    {"docNo": "2023-12", "objName": "img1"},
    {"docNo": "2023-12", "objName": "img2"},
    {"docNo": "2022-10", "objName": "img3"},
    {"docNo": "2022-08", "objName": "img4"},
  ];

给定一个类似于上面的数组,我希望将具有相同docNo和不同值ObjName的对象组合在一起

预期结果:

var list = [
    {"docNo": "2023-12"", "objName": ["img1", "img2"]},
    {"docNo": "2022-10", "objName": "img3"},
    {"docNo": "2022-08", "objName": "img4"},
  ];

推荐答案

以下是另一种 Select :

  import 'package:collection/collection.dart';

  var list = [
    {"docNo": "2023-12", "objName": "img1"},
    {"docNo": "2023-12", "objName": "img2"},
    {"docNo": "2022-10", "objName": "img3"},
    {"docNo": "2022-08", "objName": "img4"},
  ];

  var newObjects = <Map<String, dynamic>>[];
  groupBy(list, (p0) => p0['docNo']).values.forEach(
        (groupList) => newObjects.add({
          'docNo': groupList.first['docNo'],
          'objName': groupList.map((e) => e['objName']).toList(),
        }),
  );
  print(newObjects)

将打印:

[{docNo: 2023-12, objName: [img1, img2]}, {docNo: 2022-10, objName: [img3]}, {docNo: 2022-08, objName: [img4]}]

Flutter相关问答推荐

如何更新文本字段的基础上的选定下拉菜单?

MobX Build_Runner问题:不生成.G文件(Flutter )

无法让Riverpod Stream发出新值

为什么要在值列表中两次放入空安全性

TextFormfield无法与自动路由一起正常工作

Ffltter:发布版本中的Path NotFoundException

如何管理枚举类型的阻塞事件?

在Flutter 小部件测试中找不到框中的AssetImage装饰

BaseInputfield和Textfield有什么不同?

Flutter飞溅屏幕即使在修改后仍显示默认徽标和背景色

我如何在Android 13中通过Flutter应用程序打开文件(不是图像、视频或音频)?

Flutter中不使用Container是否可以做margin

创建混合 TextWidget 和 TextFieldWidget

Flutter: pie_chart 插件动画滚动问题

切换 Firebase 项目后 Flutter FirebaseAuthException 'configuration-not-found'

Flutter 分析发现 Gitlab CI/CD 管道中的问题,但它在本地没有

如何为文本主题设置多种 colored颜色 ?

Flutter中如何连续获取TextField的文本是否为空?

如何将 void 函数放入单独的 dart 文件的单独页面中

如何在屏幕按钮中排列 row() (我想在按钮中放置屏幕导航图标)