我有以下清单
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。当键匹配时,即使值不同,如何继续从列表中删除项目?
您可以使用.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)
| 归档时间: |
|
| 查看次数: |
3145 次 |
| 最近记录: |