这是我的代码
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 我需要设置第一个数组并更改为默认值,然后我想过滤整个数组并检查默认字段>
它工作正常,但我需要简化代码并且还需要知道方法是正确的
答案 0 :(得分:0)
根据你的描述,我得到的原始请求是:
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();