试图找到最简洁的方式来减少 dart 中的Map。寻找类似于JavaScript的Array.prototype.filter()
的东西
有什么建议吗?下面的方法还有很多需要改进的地方:
Map ingredients = {
'flour': '250g',
'butter': '50g',
'egg': 1,
'water': '0.2l'
};
final flour = new Map.fromIterable(
ingredients.keys.where((k) => ingredients[k] == '250g'),
value: (k) => ingredients[k]
);
print(flour); // {flour: 250g}
2条答案
按热度按时间azpvetkf1#
在核心库中没有内置的Pairs支持。但是如果你发现自己经常做这种类型的事情,你可以写一个实用程序库。例如:
然后,您可以像这样使用它:
也许这可以为quiver package(一组非核心实用程序)做出贡献。
w1jd8yoj2#
现在有一个map属性可以获取所有Map entries。
所以你可以:
如果您对键值感兴趣,您可以使用
e.key
。关于reduce方法,您可以对过滤的条目List使用
fold
方法。