【问题标题】:What's the best way to sort MAP<String, Object> by value in Dart programming?在 Dart 编程中按值对 MAP<String, Object> 进行排序的最佳方法是什么?
【发布时间】:2021-07-11 14:42:46
【问题描述】:

我是 dart 编程新手,我来自 Javascript 环境 一切对我来说都是新鲜的,我真的不知道这种排序是如何工作的 在飞镖中。

这是我的 API 中的一个示例

List example = [
 {"id": "1", "age": "20"},
 {"id": "2", "age": "21"},
 {"id": "3", "age": "22"},
]

在我将“示例”分配给其他变量之前,例如。

var example2 = example;

我想按“年龄”对其进行排序,我发现了 libs 和其他“LONG”解决方案,但感觉还有另一种方法。提前致谢!

【问题讨论】:

    标签: list flutter sorting dart


    【解决方案1】:

    列表有排序功能。尝试阅读一下文档:

    void main() {
    List example = [
     {"id": "1", "age": "20"},
     {"id": "2", "age": "19"},
     {"id": "3", "age": "22"},
     {"id": "4", "age": "9"},
    ];
      print(example);
      
      example.sort((x,y) => x["age"].compareTo(y["age"]));
      print(example);
    }
    

    编辑:您的定义应在逻辑上包含整数:

    void main() {
    List example = [
     {"id": 1, "age": 20},
     {"id": 2, "age": 19},
     {"id": 3, "age": 22},
     {"id": 4, "age": 9},
    ];
      print(example);
      
      example.sort((x,y) => x["age"].compareTo(y["age"]));
      print(example);
    }
    

    【讨论】:

    • 谢谢!对于这个愚蠢的问题,我对 dart 中的 List 感到非常困惑
    • 我会补充一点,如果您尝试按年龄排序,您可能想要解析出一个 int 值,例如 `example.sort((x, y) => int .parse(x["age"]).compareTo(int.parse(x["age"]))); ` 在没有int.parse 的情况下它仍然可以工作,直到您尝试使用更大的数字
    • @SuperKola,np。请注意,这种风格的排序是按字母顺序排列的。您的值是字符串(带引号)。
    • @Loren.A,不,我不会这样做。如果数据是字符串,那么自然需要 alpha 排序。从逻辑上讲,这里的映射是错误的,由字符串而不是整数组成。 IOW 这是初始定义时的错误。
    • @Loren.A 是的,我刚刚解析了它,谢谢!将在文档中阅读更多内容
    猜你喜欢
    • 2011-11-22
    • 2021-08-28
    • 1970-01-01
    • 2021-03-26
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 2013-06-28
    • 2021-01-04
    相关资源
    最近更新 更多