list - 如何使用“减少”来获取 Dart/Flutter 中对象列表中的值的总和
问题描述
假设我有一个这样的对象列表:
provinces = [
{name:'cityA', population:1000, area:2000},
{name:'cityB', population:2500, area:1500},
{name:'cityC', population:5000, area:3000}
];
如何在 Dart 中使用 reduce 来获得人口和面积总和的输出,如下所示:
{
population: 8500,
area: 6500
}
解决方案
fold
相当于reduce
,你可以使用它如下:
List provinces = [
{"name":'cityA', "population":1000, "area":2000},
{"name":'cityB', "population":2500, "area":1500},
{"name":'cityC', "population":5000, "area":3000}
];
dynamic result = provinces.fold({"population": 0, "area": 0}, (preMap, map) {
return {
"population": preMap["population"] + map["population"],
"area": preMap["area"] + map["area"],
};
});
print(result);
结果:
{population: 8500, area: 6500}
有关reduce
vs的更多信息fold
,您可能希望查看指定主题的详细信息。
推荐阅读
- java - 如何在 Android Studio 中检查我的 WHERE 查询是否正确
- python - 由于没有 Access-Control-Allow-Origin 标头但标头存在而被 CORS 阻止的 HTTP 请求
- oracle - 我的光标 SQL 查询有什么问题
- linux - 使用 cython 将多个 python 模块构建到一个程序中
- android - 如何让 ImageView 决定自定义 Drawable 的大小?
- javascript - 我无法从 html 表中获取数据
- android - 如何在Android中添加时间
- javascript - 祖父回调的 React 组件在孙子调用后不会重新渲染页面
- r - 带有滑动窗口的动画 ggplot 时间序列图
- anaconda - rstudio网状结构故障