【问题标题】:Dart split / compress ListsDart 拆分/压缩列表
【发布时间】:2020-12-31 15:35:43
【问题描述】:

这是我的清单的代码:

      Future<List<Map>> queryDb() async {
    List localList;
    final db = await database;
    final allRows = await db.query(TABLE_FAVORITE);
    localList = allRows.toList(growable: true);
    localList.removeWhere((item) => item[COLUMN_ISFAVORITE] == 0);
    publicFavoriteList = localList;
    print(localList);
    return localList;
}

无论何时调用它都会打印:

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

我怎样才能把它“剪”成

[{0}, {1}, {2}, {4}]

【问题讨论】:

  • 我认为不可能这样。因为 {} 大括号需要键和值。
  • @KuKu {} 可以是映射(键和值)或集合(仅值)。无论哪种方式,我认为 OP 只想要一个这些值的列表,而不是将每个值包装在一个完全冗余的集合中。

标签: list flutter dart


【解决方案1】:

使用map 从内部Map 对象中提取值:

var localValues = localList.map((o) => o['id'] as int).toList();
print(localVales);

// Prints: [0, 1, 2, 4]

【讨论】: