我需要在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的元素应该在第一位置。
答案 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));