flutter - 根据键值之一从映射中检索条目
问题描述
我已经查看了类似的帖子,但仍然无法与我所追求的内容保持一致。
我想从以下地图中检索满足特定条件的所有条目。
简单的地图
List<Map<String, dynamic>> _playList = [
{'songId': 1, 'setId': 1},
{'songId': 2, 'setId': 1},
{'songId': 3, 'setId': 1},
{'songId': 4, 'setId': 2},
{'songId': 5, 'setId': 3},
{'songId': 6, 'setId': 4},
{'songId': 6, 'setId': 5},
{'songId': 6, 'setId': 6},
{'songId': 6, 'setId': 7},
];
我正在尝试使用一种方法,该方法将遍历此映射,查找传递给该方法的 int 的所有条目,然后将结果存储在一个新数组中。
我到目前为止的方法
Future<List<Song>> songFromCurrentSetlist (int setlistId) async {
_playList.forEach((_) => setlistId == _playList.???);
}
显然,有点卡住了。
基本上,如果在该方法的参数列表中为 setlistId 接收到 1,我希望为 setlistId == 1 存在的每个 songId 取回值 1、2、3。
谢谢你,鲍勃
解决方案
当您的 setId 匹配时,您可以创建歌曲列表并添加新歌曲。
遵循示例清除您的想法。
void main(){
List<Map<String, dynamic>> _playList = [
{'songId': 1, 'setId': 1},
{'songId': 2, 'setId': 1},
{'songId': 3, 'setId': 1},
{'songId': 4, 'setId': 2},
{'songId': 5, 'setId': 3},
{'songId': 6, 'setId': 4},
{'songId': 6, 'setId': 5},
{'songId': 6, 'setId': 6},
{'songId': 6, 'setId': 7},
];
List<int> songs = [];
songFromCurrentSetlist (int setlistId) async {
_playList.forEach((index){
if(index['setId'] == setlistId){
songs.add(index['songId']);
}
});
}
songFromCurrentSetlist(1);
print(songs.toList());
}
推荐阅读
- javascript - 对每个类 jQuery 进行验证
- python - 熊猫:for循环之前的while循环,直到满足某个条件
- django-rest-framework - 如何检查当前用户是否登录 django rest 框架?如何通知其他 django 应用程序当前用户已登录?
- jupyter-notebook - Jupyter Hub the littlest : 服务器经常关闭
- android - XAMARIN / Android App安装问题
- php - 销毁其他用户的会话
- xml - 使用 Bash 检索元素标记值 XML
- swift - 使用 MVVM 使用 RxSwift 查看初始数据源和过滤
- python - 如何使用 CPLEX Python API 中的 LazyConstraintCallback 通过 Benders 分解解决 MILP 问题
- activemq-artemis - ActiveMQ Artemis 的 REST API 在哪里?