有条件地向 Map 添加元素

3

我有一个 Map,我希望只有符合条件的元素才能被添加。

例如,如果针对键 ab,是否有类似以下的实现方法?

Map myMap = {
  if a is not null "a" : a,
  if b is not null and be is not empty "b": b,
}

只有满足条件,ab才会被添加到地图中。

例如对于react来说,它的表现形式如下:

const myMap = {
  ...(a != null && { a: a }),
  ...(b != null && b.length > 0 && { b: b }),
};
3个回答

8

在Dartpad中尝试这个:

void main() {
  for (var a in [null, 15]) {
    for (var b in [null, '', 'hello']) {
      var myMap = {
        if (a != null) 'a': a,
        if (b != null && b.isNotEmpty) 'b': b,
      };

      print('a = $a, b = $b, myMap = $myMap');
    }
  }
}

5

在Dart中,你完全可以做同样的事情!

return {
   if (true) ...{'key': value},
};

-1

Dartpad非常有用

   void main() {
    Map<String, String> myMap = new Map();    
    Map<String,String> array = {"a":"apple","b":"g"}; 

    array.forEach((key,value){ 
     value.length> 0 ? myMap.addAll({key: value}): "";
    });
    print(myMap);
}

这只是非常糟糕的代码。不要这样做。 - egorikem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接