Saya memiliki Map<String, Map<String, double>> myMap = ... dan saya ingin menjumlahkan semua nilai di peta kedua. Saya telah berhasil melakukannya seperti ini

 double sum = 0;
 myMap.entries.forEach((element) {
 Map<String, double> map = element.value;
 sum += map.entries.map((e) => e.value).toList().fold(0, (a, b) => a + b);
 });

Apakah mungkin untuk menjumlahkannya hanya menggunakan satu baris tanpa .forEach()?

0
Marko 5 Januari 2021, 00:54

2 jawaban

Jawaban Terbaik

Ok, lalu opsi lain:

var sum = myMap.values.expand((e) => e.values).fold(0, (a, b) => a + b);
1
user14631430user14631430 6 Januari 2021, 10:30

Saya telah berhasil menemukan solusi yang berhasil dan semuanya dalam satu baris.

double sum = myMap.values
        .map((e) => e.values)
        .fold(0, (a, b) => a + b.fold(0, (a, b) => a + b));
0
Marko 6 Januari 2021, 10:20