如何根据特定键从地图列表中删除项目?

Geo*_*off 3 dart flutter

我有以下清单

List<Map<String, dynamic>> filterItems = [
     {"category":1},
     {"option_val":1},
      
 ]
Run Code Online (Sandbox Code Playgroud)

我还有下面的地图

 Map<String, dynamic> singleItem = {"category":6}
Run Code Online (Sandbox Code Playgroud)

我想从上面的列表(filterItems)中删除任何项目,该项目具有类似于 singleItem 映射的键的对象。因此,就我而言,我想{"category":1}从列表中删除 ,因为它具有与地图类似的关键类别。

所以我尝试了以下方法

filterItems.remove(singleItem);
print(filterItems)
Run Code Online (Sandbox Code Playgroud)

但上面的方法不起作用,因为键的值不同,所以我尝试了以下方法,现在我陷入了如何继续的困境

singleItem.map((key,value){
    filterItems.removeWhere((element) => element.containsKey(key))
})
Run Code Online (Sandbox Code Playgroud)

但上面抛出了一个错误,其主体singleItem.map返回 null。当键匹配时,即使值不同,如何继续从列表中删除项目?

Abb*_*hsn 5

您可以使用.removeWhere如下:

List<Map<String, dynamic>> filterItems = [
     {"category":1},
     {"option_val":1},
      
 ];
  Map<String, dynamic> singleItem = {"category":6};
  
  filterItems.removeWhere((element) => element.keys.first == singleItem.keys.first);
  print(filterItems);
Run Code Online (Sandbox Code Playgroud)

结果是:

[{option_val: 1}]
Run Code Online (Sandbox Code Playgroud)