键/值排序映射



我有一个' late Map<String,>datosSpots;

我正在迭代datosSpots来更新键,值对:

value.docs.forEach((spot) {

datosSpots = spot.data() as Map<String,dynamic>;
GeoPoint spotLocation = datosSpots['location'];
double latSpot = spotLocation.latitude;
double lonSpot = spotLocation.longitude;
//calculamos distancia
double distancia = calculateDistance(
widget.latitud, widget.longitud, latSpot, lonSpot);
//actualizamos el valor de spot_distancia
datosSpots.update("spot_distancia", (value) => distancia);
print("distancia cambiada ${datosSpots['spot_distancia']}");
});

现在我想排序updateDocs键'spot_distance'

使用这个示例,为了按其值对Map进行排序,您必须将键更改为e1.spot_distance.compareTo(e2.spot_distance),并使用用于排序的Map变量:

Map map = {3: 'three', 1: 'one', 4: 'four', 2: 'two', 5: 'five'};
var sortedMap = Map.fromEntries(
map.entries.toList()
..sort(
(e1, e2) => e1.value.compareTo(e2.value),
),
);

最新更新