You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何按升序排序星期名称列表

按星期逻辑顺序排序列表的解决方案

你之前用的字符串排序是按字母顺序比较的,这自然不符合我们实际需要的星期时间顺序——毕竟按字母排的话Friday会排在Monday前面,但我们要的是从周一到周日的逻辑排序。

要解决这个问题,你可以先定义一个标准的星期顺序参考数组,然后根据每个星期名称在这个数组中的索引位置来进行排序:

示例代码

首先定义星期的正确顺序:

const weekOrder = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];

然后用这个参考数组对目标列表排序:

const list = ['Friday', 'Monday', 'Sunday', 'Wednesday'];
list.sort((a, b) => weekOrder.indexOf(a) - weekOrder.indexOf(b));

如果你的列表里可能存在大小写不一致的情况(比如有小写的friday),可以统一转成小写后再匹配索引:

const weekOrder = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'];
const list = ['Friday', 'Monday', 'Sunday', 'Wednesday'];
list.sort((a, b) => {
  const indexA = weekOrder.indexOf(a.toLowerCase());
  const indexB = weekOrder.indexOf(b.toLowerCase());
  return indexA - indexB;
});

运行上面的代码后,就能得到你期望的结果:

[Monday, Wednesday, Friday, Sunday]

内容的提问来源于stack exchange,提问作者Muzammil Hassan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 04:10:36