flutter - 简化颤振中的多个过滤器
问题描述
这是我的代码
value = data.where((i) => (i.type == 1 || i.type == 3)).toList();
if (data.length == 0) {
_final = null;
} else {
dataDefault = value .where((i) => i.isdefault == 1).toList();
}
if (dataDefault.length == 0) {
data[0].isdefault = 1;
}
finalvalue = dataDefault.where((i) => i.isdefault == 1).toList();
这是我的json
[
{
"id": 129,
"type": 3,
"is_default": 1
},
{
"id": 130,
"type": 1,
"is_default": 0
},
{
"id": 131,
"type": 5,
"is_default": 1
}
]
我需要的是,如果没有可用的数组,我需要检查数组是类型 1 还是 3,我需要设置第一个数组并更改为默认值,然后我想过滤整个数组并检查默认字段
它工作正常,但我需要简化代码,还需要知道方法是正确的
解决方案
根据您的描述,我得到的原始请求是:
if(array not contains type1 or type3){
set array[0] to default
}
result <- get all 'is default' from array
简化版:
var result; // null as default
if (data != null) {
if(data.where((i) => (i.type == 1 || i.type == 3)).isEmpty) {
data[0].isdefault = 1;
}
result = data.where((i) => i.isdefault == 1).toList();
}
或使用空安全检查?
和??
if(data?.where((i) => (i.type == 1 || i.type == 3))?.isEmpty ?? false){
data[0].isdefault = 1;
}
final result = data?.where((i) => i.isdefault == 1)?.toList();
推荐阅读
- wordpress - WordPress 中的管理员 ajax 访问 - 400 错误请求
- r - layer_ 中未使用的参数
- java - 无法从 Kafka 中的消费者向死信主题发送消息
- sas - 即使我运行两次,如何避免在 proc append 中重复?
- google-cloud-functions - 应用 Google 助理 - Dialogflow 未能显示表格卡片
- r - 如何将“tidyquant”包安装到 R 3.4.0?
- azure-data-factory-2 - Azure DataFactory 无需调试即可找到活动块的输出结构
- python - 剪切并粘贴到 zip 文件
- vba - 使用 VBA 出错后重置 html 元素
- sql - 在 SQL 中将部分月份添加到月份总计