gpt4 book ai didi

flutter - 确定一个 Map 是否是另一个 Map 的子集

转载 作者:IT王子 更新时间:2023-10-29 07:15:26 28 4
gpt4 key购买 nike

我发现 package:collection/collection.dart 可以用来判断两个 Map 是否相等,但是我找不到任何方法来判断如果其中一个是另一个的子集。例如,如果我有以下 Map

{
'a': 'b',
'c': [1,2,3],
'd': 4
}

以下是有效的子集:

{ 'a': 'b' }
{ 'c': [1,2,3] }
{ 'd': 4 }

{
'a': 'b',
'c': [1,2,3]
}

{
'a': 'b',
'd': 4
}

{
'c': [1,2,3],
'd': 4
}

但以下不是有效的子集:

{ 'a': 'x' }

{
'a': 'b',
'c': [1,2,99]
}

我如何在 Dart (Flutter) 中测试它?

最佳答案

您可以获取候选子集的每个 MapEntry 并检查原始 map 是否包含相同的值。如果值是一个集合,则必须使用 DeepCollectionEquality 对其进行比较。

这是我的代码:

import 'package:collection/collection.dart'; // import for DeepCollectionEquality

bool isSubset(Map map, Map subsetCandidate) {
return subsetCandidate.entries.every(
(entry) => DeepCollectionEquality().equals(entry.value, map[entry.key]));
}

关于flutter - 确定一个 Map 是否是另一个 Map 的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57534534/

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