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

TypeScript实现工作日索引数组转三字母星期字符串的方法

最佳实现方案

核心逻辑非常直接:先固定0-6索引和星期缩写的对应关系,再遍历数据替换目标字段即可,全程不需要引入第三方依赖,结果稳定无兼容问题。

  • 首先定义固定映射表:不要用内置Date相关API做转换,这类接口受运行环境的语言、时区设置影响,很容易返回不符合要求的结果(比如返回中文星期、全拼、带后缀的缩写),直接写死映射是最稳妥的方案
// 索引顺序严格对应0=Mon 到 6=Sun的规则
const WEEKDAY_ABBR = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
  • 优先选无副作用的纯函数写法做转换:这种写法不会修改原始输入数据,避免影响其他依赖原始数据的逻辑,转换后所有非目标字段会原样保留
const processedResult = {
  data: rawData.data.map(userItem => ({
    // 保留对象所有原有字段
    ...userItem,
    // 单独替换days_present字段,按索引取对应的缩写即可
    days_present: userItem.days_present.map(index => WEEKDAY_ABBR[index])
  }))
};

如果你的场景不需要保留原始的数字索引值,也可以直接遍历修改原数据,内存开销更小:

rawData.data.forEach(item => {
  item.days_present = item.days_present.map(idx => WEEKDAY_ABBR[idx])
})

用你给出的测试数据运行上述代码,输出的days_present字段和期望结果完全匹配,其余字段不会做任何改动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 13:15:35