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

Dart/Flutter中如何通过子串匹配数组中的目标元素?

解决方案

首先,你的数组定义存在语法问题,元素需要用引号包裹为字符串,否则会被当作未定义变量处理,修正后的数组如下:

var data = ['manggo', 'lemon', 'watermelon', 'guava'];

你遇到的问题是因为数组的includes(你说的contains应该是指这个方法)是判断数组中是否存在完全匹配的元素,而非检查元素是否包含指定子串。要实现匹配包含"water"的元素,可以用以下几种方法:

方法1:filter + includes

用filter筛选数组,结合字符串的includes方法判断元素是否包含目标子串:

const keyword = 'water';
const matchedItems = data.filter(item => item.includes(keyword));
console.log(matchedItems); // 输出: ['watermelon']

方法2:filter + indexOf

如果需要兼容不支持includes的旧浏览器,可改用indexOf——当返回值不等于-1时,说明元素包含目标子串:

const keyword = 'water';
const matchedItems = data.filter(item => item.indexOf(keyword) !== -1);
console.log(matchedItems); // 输出: ['watermelon']

方法3:只找第一个匹配元素

如果不需要所有匹配结果,只想获取第一个符合条件的元素,用find方法即可:

const keyword = 'water';
const matchedItem = data.find(item => item.includes(keyword));
console.log(matchedItem); // 输出: 'watermelon'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 12:25:32