kotlin - 列表中的 Kotlin 过滤器列表
问题描述
尝试过滤嵌套列表时如何返回原始列表(或列表的副本),我有以下方法:
如果我使用 .map 我得到嵌套列表作为返回,如果我使用 flatMap 我得到一个嵌套列表 --> List>
private fun filterForShop(
list: MutableList<WidgetItem>
): List<WidgetItem> {
val result = list.map {
it.compList.filter { comp ->
comp.id != "square"
}
}
}
我的对象看起来像:
data class WidgetItem(
val id: String,
val title: String,
val kind: String,
val compList: List<CompItem>
)
解决方案
因为我们只能用新值复制compList
旧元素val
compList
private fun filterForShop(
list: MutableList<WidgetItem>
): List<WidgetItem> = list.map {
it.copy(compList = it.compList.filter { comp ->
comp.id != "square"
})
}
推荐阅读
- php - get_avatar() 和 get_avatar_url() 过滤器传递请求的大小
- javascript - Three.js OrbitControls 补间动画到目标对象的正面(正面)
- typo3 - 什么是迁移旧 TYPO3 扩展的好方法
- angular - 我在 Angular 6 中使用 ag-grid。我已经实现了自定义全选功能。但是全选不能随着过滤器的变化而正常工作
- sql - 从表中的记录中获取分钟总和而不计算sql中重叠的不同记录
- java - 使用 spring-security 和 oauth2 配置方法级别的身份验证
- html - 如何将col调整为行?
- tensorflow - TensorFlow GPU 利用率低
- bash - 编写脚本(或命令)
- java - 如何使用mybatis为db2中的每个select语句插入多行?