通过其属性过滤 List<Object> 的流,这些属性也是一个 List

filter stream of List<Object> by its properties that are also a List

我有一个 List<Content> 并且想按列表字段的属性进行过滤。

内容

class Content {
// ...
  final List<Tag> tags;
}

标签

class Tag {
// ...
  final String name;
  final String slug;
}

来自 Angular 我使用

map(data => data.filter(a => a.tags.some(t => t.slug.includes(this.slug)))),

根据标签的 slug 属性 过滤。

但是现在是 Dart、Flutter 和 rxdart。 我到目前为止:

    applicationBloc.contentOutput.map(
            (contents) => contents.where(
                    (item) => item.tags == widget.slug).toList()
    )

contentOutput 是 BehaviorSubject 的流。

基本上我有几 1000 个项目,并且只想显示带有特定标签的内容。

如何按 Flutter/Dart 中的对象属性列表的 属性 进行过滤?

使用类似的东西:

  var foo = <Content>[];
  var filtered = foo
      .where((content) => content.tags.any((tag) => tag.slug == 'bingo'))
      .toList();

用您需要的任何测试替换 tag.slug == whatever 谓词。