Flutter 从JSON文件中统计指定书籍的唯一章节总数
解决方案
核心思路是利用Dart中Set类型自动去重的特性,提取所有条目的chapter字段后直接获取去重后的长度,即可得到唯一章节数量。
实现代码
你可以在标注的新筛选逻辑位置添加以下代码:
// 提取所有chapter字段存入Set自动去重 Set chapterSet = onlyItems.map((item) => item['chapter']).toSet(); // 唯一章节计数结果 int uniqueChapterCount = chapterSet.length; print('唯一章节数量::: $uniqueChapterCount'); // 输出为17
如果需要同时拿到筛选后的条目和章节计数,调整返回逻辑即可,比如封装为Map或者自定义对象返回。
可选优化
原有for循环的筛选逻辑可以简化为更简洁的写法:
var onlyItems = allItems.where((item) => item['book'] == shortName).toList();
内容的提问来源于stack exchange,提问作者mafortis
相关产品推荐
相关产品推荐

