如何在Dart/Flutter中过滤指定EntityType类型的实体?
问题分析与解决方法
你的代码存在三个关键问题:
- 使用
for...in遍历数组时,拿到的是数组的索引字符串,而非实际的Transfer对象,因此无法正确访问fromType属性。 - 用字符串
"EntityType.producerSite"和枚举值EntityType.producerSite直接比较,两者类型不匹配,永远不会相等。 - 数组添加元素应使用
push()方法,而非add()(这是其他语言的语法)。
正确实现方式
方式一:使用for...of遍历(直观易懂)
var newTransferList = []; for (var transfer of transferlist) { if (transfer.fromType === EntityType.producerSite) { newTransferList.push(transfer); } }
方式二:使用数组filter方法(简洁高效)
var newTransferList = transferlist.filter(transfer => transfer.fromType === EntityType.producerSite );
通过以上两种方式,就能正确过滤出fromType匹配EntityType.producerSite的Transfer对象。
内容的提问来源于stack exchange,提问作者Kelly Tang
相关产品推荐
相关产品推荐

