Flutter中按类的List类型likes属性长度排序问题求助
问题解决:按likes列表长度排序数组
你的代码无效的核心原因是:你通过map生成了一个只包含likes长度的新列表,后续的sort操作只对这个新列表生效,原data数组根本没被修改,所以看不到排序效果。
正确实现方式
1. 直接修改原数组排序(降序)
data.sort((a, b) => b.likes.length.compareTo(a.likes.length));
如果需要升序,把比较逻辑换成a.likes.length.compareTo(b.likes.length)即可。
2. 生成排序后的新数组(不改动原数组)
如果不想修改原data数组,可以先复制原数组再排序:
final sortedData = List.of(data) ..sort((a, b) => b.likes.length.compareTo(a.likes.length));
内容的提问来源于stack exchange,提问作者fatih yılmaz
相关产品推荐
相关产品推荐

