android - 嵌套列表kotlin中的谓词
问题描述
我有一个 JSON 列表,我需要在其中根据一些过滤器过滤数据。我正在使用谓词进行过滤,但根据我的需要,我需要过滤嵌套列表,如果在这里我使用谓词,我会留下 3 个测试谓词,Any, None, and All
但因为我只想要匹配的数据并且我没有使用任何这些谓词。
AsAny
如果至少有一个匹配元素,All
则返回 true,如果存在所有匹配元素,则返回 true,但是如何才能从嵌套列表中仅获取匹配的元素,而与任何不匹配的元素无关。
我可以使用循环列表的传统方法,但我想知道是否可以使用谓词。
这是我试图获取其会话元素包含的中心的示例 JSONmin_age_limit is > 18
和available_dose_1 > 0
.
{
"centers": [
{
....
"sessions": [
{
"session_id":"adad",
...
"min_age_limit":45,
"available_capacity_dose1": 5,
"available_capacity_dose2": 5
...
},
{
"session_id":"adad1",
...
"min_age_limit":18,
"available_capacity_dose1": 0,
"available_capacity_dose2": 5
...
},
{
"session_id":"adad2",
...
"min_age_limit":18,
"available_capacity_dose1": 5,
"available_capacity_dose2": 0
...
}
]
}
....
]
}
解决方案
您应该像下面这样使用过滤器。
filteredList = sessions.filter{ it.min_age_limit > 18 && it.available_dose_1 > 0 }
澄清一下,Kotlin 支持 any、none 和 all 作为奖励谓词。但过滤器也在那里。我想这就是你要找的。
推荐阅读
- java - 将秒转换为相对时间
- asp.net - 如何告诉 swagger 特定响应除了状态码之外没有响应类型?
- reactjs - Next.js 页面无法路由
- mocking - 开玩笑:模拟 const 没有定义
- django - 错误 403 CSRF cookie 未设置。axios 向 django 服务器发送请求
- cuda - 是什么让 cuLaunchKernel 因 CUDA_ERROR_INVALID_HANDLE 而失败?
- git - 如果 SCM 不可访问,则在本地信息上运行 Jenkins 管道
- jquery - 记录未绑定在网格上 - 使用 ASP.NET Kendo UI(非 MVC)
- python - 创建最多一定数量的文件
- javascript - 产品未定义 Laravel