繁体   English   中英

如何按 flutter 中的子列表值对列表进行排序?

[英]How to sort list by sub list value in flutter?

我是 flutter 开发人员,我需要帮助解决这个问题

我有一个数组,我想对其进行排序

下面是这个列表的结构:


List myList = [
  {
     'name': 'Max',
     'messages': [
       {
        'time': 133459086,
        'text': 'Hello World!',  
       }
     ],
  },
  {
     'name': 'Wax',
     'messages': [
       {
        'time': 133459083,
        'text': 'Hello !',  
       }
     ],
  },
];

我想通过使用消息中的时间值降序对该 myList 进行排序。

注意:消息数组可能是空的,因此它可能会抛出错误 state 没有元素。

请帮我,

谢谢,

该数据目前无效。

如果messages节点是一个数组,那么它的项目需要包装在对象中,例如:

'messages': [
  {
    'time': 133459089,
    'text': 'Hello!'
  }
]

如果是这种情况,您需要知道消息中是否只有一个messages项,或者是否可以有多个。

抱歉,我找到了答案:

myList.sort((a,b) => b['messages'].isNotEmpty ? b['messages'].last['time'].compareTo(a['messages'].isNotEmpty ? a['messages'].last['time'] : 0 ) : 0,);

你可以尝试这样的事情:

var list = myList..sort((b, a) => a['messages']['time'].compareTo(b['messages']['time']));

print(list);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM