gpt4 book ai didi

dictionary - 在 Dart 中减少/过滤 map 的首选方法?

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

试图找到最简洁的方法来减少 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}

最佳答案

核心库中没有对 Pairs 的内置支持。但是,如果您发现自己经常做此类事情,则可以编写一个实用程序库。例如:

library pairs;

class Pair<K,V> {
Pair(this.k, this.v)
final K k;
final V v;
String toString() => '($k, $v)';
}

Iterable<Pair> asPairs(Map map) => map.keys.map((k) => new Pair(k, map[k]));

Map fromPairs(Iterable<Pair> pairs) => new Map.fromIterables(
pairs.map((p) => p.k),
pairs.map((p) => p.v));

然后你可以像这样使用它:
import 'src/pairs.dart';

Map flour = fromPairs(asPairs(ingredients).where((p) => p.v == '250g'));

print(flour); // {flour: 250g}

也许这是可以对 quiver package 做出贡献的东西。 ,一组非核心实用程序。

关于dictionary - 在 Dart 中减少/过滤 map 的首选方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28397211/

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