方法:
// 递归函数,用于获取混合数据结构中的所有值
/*
data: Map类型的数据(实体类 toJson)
values:存放递归出来的参数
*/
getAllValues(dynamic data, List<dynamic> values) {
if (data is List) {
// 如果是数组,递归遍历数组中的每个元素
for (var item in data) {
getAllValues(item, values);
}
} else if (data is Map) {
// 如果是字典,递归遍历字典中的每个值
data.values.forEach((value) {
getAllValues(value, values);
});
} else {
// 如果是其他类型,直接添加到值列表中
values.add(data);
}
}
调用:
bool _isHaveParam(){
//存放所有参数的数组
List<dynamic> allCreateExpParmaValues = [];
getAllValues(state.createExpParams.toJson(), allCreateExpParmaValues);
//遍历数组中有没有某个参数是null
for (var element in allCreateExpParmaValues) {
if(element != null){
return true;
}
}
return false;
}