如何使用 "reduce" 获取 Dart/Flutter 中对象列表中的值的总和
How to use "reduce" to get the sum of values in a list of objects in 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
与 fold
的更多信息,您可能希望查看指定主题的 the details。
您可以使用 Dart 中的 reduce
方法来实现。
检查下面的代码:完美运行:
代码
// here is the initial list
List provinces = [
{"name":'cityA', "population":1000, "area":2000},
{"name":'cityB', "population":2500, "area":1500},
{"name":'cityC', "population":5000, "area":3000}
];
// use the reduces method to sum the population and area
Map<String, dynamic> sum = provinces.reduce((value, element){
return {
// sum the population here
"population": value["population"] + element["population"],
// sum the area here
"area": value["area"] + element["area"],
};
});
// print the sum here
print(sum);
输出:
{
population: 8500,
area: 6500
}
要阅读更多有关 dart 中 reduce
方法的信息,请查看下面的 link:
希望对您有所帮助。
假设我有一个这样的对象列表:
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
与 fold
的更多信息,您可能希望查看指定主题的 the details。
您可以使用 Dart 中的 reduce
方法来实现。
检查下面的代码:完美运行:
代码
// here is the initial list
List provinces = [
{"name":'cityA', "population":1000, "area":2000},
{"name":'cityB', "population":2500, "area":1500},
{"name":'cityC', "population":5000, "area":3000}
];
// use the reduces method to sum the population and area
Map<String, dynamic> sum = provinces.reduce((value, element){
return {
// sum the population here
"population": value["population"] + element["population"],
// sum the area here
"area": value["area"] + element["area"],
};
});
// print the sum here
print(sum);
输出:
{
population: 8500,
area: 6500
}
要阅读更多有关 dart 中 reduce
方法的信息,请查看下面的 link:
希望对您有所帮助。