flutter 地图排序列表

flutter Sorting list of map

所以我想制作如下图所示的评级框,但是对于评级值它还没有排序,而且它不是 int/double 而是字符串。什么代码适合这个?

我希望它的结果是从高评分 5 到最低评分 1

如果你能给出一些示例代码我会很高兴

不介意线性进度条

json数据

"all_rating": [
                {
                    "rating": "1",
                },
                {
                    "rating": "2",
                },
                {
                    "rating": "4",
                },
                {
                    "rating": "4.5",               
                },
                {
                    "rating": "5",
                }
            ],

使用double.parse(<any string containing double>)将字符串转换为double,然后进行相应排序。

要排序,需要给出自定义比较函数

list.sort((a, b) => a.rating.compareTo(b.rating));

您可以使用 double.parse(<any string containing double>) 将 string 转换为 double,然后按如下方式对它们进行排序。

// this is list of double that you got from map.
List<double> doubleList = [1,0.5,4,3,2];

// sort the list using sort function.
doubleList.sort();

我认为这个排序系统可以帮助您找到解决方案。

List<Map> allRating = [
                {
                    "rating": "1",
                },
                {
                    "rating": "2",
                },
                {
                    "rating": "4",
                },
                {
                    "rating": "4.5",               
                },
                {
                    "rating": "5",
                }
            ];
  
allRating.sort((a, b) => (b['rating']).compareTo(a['rating'])); /// sort List<Map<String,dynamic>>

print(allRating);  /// output -> [{rating: 5}, {rating: 4.5}, {rating: 4}, {rating: 2}, {rating: 1}]