Dart // Flutter:如何根据条目内容从列表中删除项目

Dart // Flutter: How to remove Items from List depending on content of entry

在我的 Flutter 应用程序中,我有一个数据库来跟踪用户喜欢和不喜欢的项目。我有函数

  List finalFavoritesList;
      void queryDb() async {
    final db = await database;
    final allRows = await db.query(TABLE_FAVORITE);
    List finalFavoritesList = allRows.toList(growable: true);
    print(finalFavoritesList);
  }

根据我的理解,它从 sqflite 数据库创建了一个 dart 列表。 Logcat 打印:

[{id: 0, isFavorite: 0}, {id: 1, isFavorite: 1}, {id: 2, isFavorite: 0}, {id: 3, isFavorite: 1}, {id: 4, isFavorite: 0}, {id: 5, isFavorite: 1}] 

现在我想删除所有条目,其中 isFavorite 等于 0,但我不知道如何删除。这个新列表应该有另一个名称。

我想你的问题本身就有答案了!
使用removeWhere函数。

List favorite = [{'id': 0, 'isFavorite': 0}, {'id': 1, 'isFavorite': 1}, {'id': 2, 'isFavorite': 0}, {'id': 3, 'isFavorite': 1}, {'id': 4, 'isFavorite': 0}, {'id': 5, 'isFavorite': 1}];
  
favorite.removeWhere((item) => item['isFavorite'] == 0);
print(favorite);
  

输出:

[{id: 1, isFavorite: 1}, {id: 3, isFavorite: 1}, {id: 5, isFavorite: 1}]

参考:https://api.dart.dev/stable/2.9.3/dart-core/List/removeWhere.html

希望能解决您的问题!