在Flutter中对JSON列表进行排序

时间:2019-08-02 06:02:21

标签: flutter dart

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

我的意思是我可能会喜欢:

[
    {
        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的元素应该在第一位置。

2 个答案:

答案 0 :(得分:0)

您可以使用带有自定义比较器的bool排序方法

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

答案 1 :(得分:0)

使用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));