You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何筛选包含指定标签的列表元素?

错误原因分析

  1. 第一种写法逻辑完全颠倒:你调用了字符串tag的contains方法,传入的是数组类型的map["tags"],不仅类型不匹配,也不符合「判断tags数组是否包含目标tag」的需求。
  2. 第二种写法固定取索引为1的元素,只能匹配tag2在数组第二位的场景,没有覆盖tags数组的所有元素。

正确实现

Dart的List内置的contains()方法会自动遍历整个数组判断是否存在匹配项,你只需要把contains的调用主体换成每条数据的tags数组即可,代码如下:

String tag = 'tag2';
// 写法1:易读版
var list2 = list.where((item) {
  List tags = item["tags"] as List;
  return tags.contains(tag);
}).toList();

// 写法2:单行简写版
var list2 = list.where((item) => (item["tags"] as List).contains(tag)).toList();

运行后list2就会返回所有tags字段包含tag2的元素。

内容的提问来源于stack exchange,提问作者Sioka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 10:18:01