gpt4 book ai didi

dictionary - Dart Map.remove哪里没有删除所有符合删除条件的键

转载 作者:行者123 更新时间:2023-12-03 03:56:03 25 4
gpt4 key购买 nike

好吧,这很奇怪,我正在使用removeWhere删除 map 中的所有空值,但它们都可以通过!有没有搞错!

firebaseUploadMap.removeWhere((key, value) => value == null);

这是运行后的 map 打印结果:
{languages: null, latitude: 55.9521138, longitude: -3.196447, houseNum: 1, street: Princes Street, city: Edinburgh, postcode: EH2 2EQ, country: GB, toolsInPossession: null, jobsPropositioned: null, jobsCompleted: null, jobTypesLiked: null, jobsShared: null, jobRatings: null, signUpDate: Timestamp(seconds=1586989986, nanoseconds=301779000)}

Null值仍然很多。与变量类型有关吗?语言是一个列表,我的null删除器缺少它。 jobRatings是一个 bool(boolean) 值和null,Dart不能将它们识别为Null吗?

我尝试复制 map ,遍历原始 map 中的键,然后将其删除,但是输出与Dart的.removeWhere相匹配。

我该如何解决?

最佳答案

喔好吧。抱歉,请大家注意,@ jamesdlin使我得到了答案。在尝试提供一个完全可复制的示例时,我发现当我将Person对象转换为 map 时,出于某种原因,我决定将对象的所有字段都设置为字符串,因此应使用语言:String(value)。所以我像在NULL中一样将null设置为“Null”类型的String。因此,我无法将其删除。

我已对此进行了纠正,将键映射到原始数据类型,然后在removeWhere完全起作用。我假设Firebase数据库将自动将Dart列表转换为它们的Array数据类型,因此,类(class)是:如果要去除可空条目,请不要将可空字段转换为字符串。

再次遗憾地浪费了人们的时间,很高兴解决它。

关于dictionary - Dart Map.remove哪里没有删除所有符合删除条件的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61239830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com