在 Flutter 中对 JSON 列表进行排序 [重复]

Posted

技术标签:

【中文标题】在 Flutter 中对 JSON 列表进行排序 [重复]【英文标题】:Sort JSON list in Flutter [duplicate] 【发布时间】:2019-12-10 17:49:47 【问题描述】:

我需要在 Flutter 中对一个列表进行排序,这是一个对象列表,我有一个模型,并且该模型有一个名为 isFeatured 的属性,我需要所有 isFeatured 为 true 的元素都位于列表的第一个位置。

我的意思是我可以有类似的东西:

[
    
        id: 1,
        name: 'Test',
        isFeatured: false,
    ,
    
        id: 2,
        name: 'Test 3',
        isFeatured: true,
    ,
    
        id: 3,
        name: 'Test 5',
        isFeatured: false,
    ,
    
        id: 4,
        name: 'Test 34',
        isFeatured: true,
    
]

并且isFeatured为true的元素应该在第一个位置。

【问题讨论】:

【参考方案1】:

您可以将排序方法与布尔的自定义比较器一起使用

myList.sort((a, b) => (a.isFeature ? 1 : 0) - (b.isFeature ? 1 : 0));

【讨论】:

【参考方案2】:

使用 List.sort

 var myList = [
        
          'id': 1,
          'name': 'Test',
          'isFeatured': false,
        ,
        
          'id': 2,
          'name': 'Test 3',
          'isFeatured': true,
        ,
        
          'id': 3,
          'name': 'Test 5',
          'isFeatured': false,
        ,
        
          'id': 4,
          'name': 'Test 34',
          'isFeatured': true,
        
      ];

myList.sort((a, b) => (b['isFeatured']?1:0).compareTo(a['isFeatured']?1:0));

【讨论】:

以上是关于在 Flutter 中对 JSON 列表进行排序 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter 中对未来列表进行排序

如何在 Flutter 中对 DataTable 小部件上的 Future<List> 数据类型进行排序?

如何在 Play Framework 模板中对列表进行排序?

如何在 Dart 中对 List<File> 进行排序,最后使用 null 对象

在 Javascript 中对 JSON 对象进行排序

在 JavaScript 中对 JSON 进行排序