Flutter 如何从映射中删除null和0?

Flutter 如何从映射中删除null和0?,flutter,dart,Flutter,Dart,很长一段时间以来,我试图从地图中删除NULL sortedMap.removeWhere((key, value) => value == "NULL"); sortedMap.removeWhere((key, value) => value == NULL); …但是,这无法完成,我决定设置默认值“无数据”,这解决了问题 sortedMap.removeWhere((key, value) => value == "No

很长一段时间以来,我试图从地图中删除NULL

      sortedMap.removeWhere((key, value) => value == "NULL");
    sortedMap.removeWhere((key, value) => value == NULL);
…但是,这无法完成,我决定设置默认值“无数据”,这解决了问题

sortedMap.removeWhere((key, value) => value == "No Data");
这就解决了问题!现在,我无法从映射中删除值“0”

 sortedMap.removeWhere((key, value) => value == "0");
sortedMap.removeWhere((key, value) => value == 0);
这是我的地图:

{h_1: 0, h_2: 1, h_3: 1, h_4: 1, h_5: 0, h_6: 1}
请告诉我。 如何解决这个问题


感谢您的帮助

这和您的解决方案一样吗?
就我而言,它工作得很好。


什么是NULL?您要删除的可能是null

Null在下面的例子中是来自dart:core的类)


你的代码应该有效,你能在地图上提供更多信息吗?Dart使用
null
,而不是
null
。它也是强类型的,意思是
“0”!=0和
“空”!=空
。非常感谢,它成功了!代码是正确的,问题是,这仍然是一个假设,需要执行完全重新启动。thnx!!!我从服务器获取了这个,
{time_21:2020-10-22 03:28:16,time_10:NULL,time_1:2020-11-11:28:16,time_2:NULL,time_15:NULL}
在我编写命令之前,这些值都没有被删除。不幸的是,在为默认的“无数据”赋值之前,删除空值的问题已经部分解决。我还是不明白。是什么导致了这个错误=/完全正确!我写了相同的行
map.removeWhere((键,值)=>value==0)但是,这不起作用,在乘车后日志中有值为0的对象删除了这些对象。但是,现在所有对象都被删除了。。老实说,我很震惊……)也许,有必要不进行“热”重新加载,而是完全重新加载……,无论如何……非常感谢您的回复=)
void main() {
  Map data = {'h_1': 0, 'h_2': 1, 'h_3': 1, 'h_4': 1, 'h_5': 0, 'h_6': 1};
  
  print(data);
  data.removeWhere((k, v) => v == 0);
  print(data);
}
import 'package:flutter_test/flutter_test.dart';
void main() {
  test(
    'Remove null',
    () {
      Map<String, dynamic> map = {
        'a': 1,
        'b': 2,
        'c': null,
        'd': 4,
      };
      print(map);
      map.removeWhere((key, value) => value == Null);
      print(map);
      map.removeWhere((key, value) => value == null);
      print(map);
      // assert
    },
  );
}
{a: 1, b: 2, c: null, d: 4}
{a: 1, b: 2, c: null, d: 4}
{a: 1, b: 2, d: 4}
✓ Remove null