flutter - 在 dart 中从 ' Map<String,ProductItem>myMap' 过滤并获取新的 Map

标签 flutter dart

我在 dart 中有一个 map

Map<String, List<ProductItem>> _productItemsMap;

我想过滤并得到一个新的Map<String, List<ProductItem>> _newMap 其中产品项目的 id 与我的条件相同。 我怎样才能在 Dart 中做到这一点? 感谢您的帮助。

最佳答案

这里有几种方法:

使用collection-for创建新的Map并使用collection-if进行过滤:

var _newMap = {
  for (var entry in _productItemsMap.entries)
    if (satisfiesCondition(entry.key, entry.value))
      entry.key: entry.value,
};

使用Iterable.where进行过滤并使用Map.fromEntries创建一个新的Map:

var _newMap = Map.fromEntries(_productItemsMap.entries
    .where((entry) => satisfiesCondition(entry.key, entry.value)));

首先使用 Map.of 复制 Map,然后删除不需要的项目:

var _newMap = Map.of(_productItemsMap)
  ..removeWhere((key, value) => !satisifiesCondition(key, value));

关于flutter - 在 dart 中从 ' Map<String,ProductItem>myMap' 过滤并获取新的 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61328969/

相关文章:

dart - 如何创建/添加向每个请求添加默认 header 的中间件

dart - Flutter下拉弹出ModalRoute页面

flutter - Flutter-选定时更改图标颜色

flutter - 如何在数据来自API的flutter中创建下拉列表?

flutter - 如何在具有多个 Dart 和 webdev 版本的机器上运行 flutter_web 和 angulardart?

flutter - 如何在 Flutter 中使用 Provider 正确获取 API

flutter - 克隆使用旧 sdk 和包的项目后如何解决所有 sdk 和依赖项问题?

flutter - 如何在 Dart 中从两个不同的列表创建公共(public)元素的列表?

flutter - 如何在 flutter web 应用中设置页面描述?

node.js - Dart VM 的性能与 Node.js 相比如何?