【问题标题】:Sort JSON list in Flutter [duplicate]在 Flutter 中对 JSON 列表进行排序 [重复]
【发布时间】: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的元素应该在第一个位置。

【问题讨论】:

    标签: flutter dart


    【解决方案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));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-16
        • 2021-03-30
        • 1970-01-01
        • 2021-07-01
        • 1970-01-01
        • 2014-12-26
        • 2015-11-14
        • 2014-10-27
        相关资源
        最近更新 更多