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

如何将数组中对应当日的星期元素替换为'Today'?

问题分析与修复方案

嘿,我一眼就瞅出你代码里的问题啦!你现在的代码逻辑走偏了——你先把weekdays[day]赋值给了dayCal,这时候dayCal是单个字符串(比如当周一是当天时,它就是'Mon'),你再去修改dayCal[6],本质上是在操作字符串的第7个字符(但字符串长度根本没那么长),而且你还硬写了索引6,这就导致每次都把数组最后一个元素改成'Today',完全没关联到当日的索引。

正确的实现思路

要实现把数组中对应当日的元素替换为'Today',核心是找到当日对应的数组索引,然后直接修改数组的该位置元素:

  • new Date().getDay()返回的数字正好对应你weekdays数组的索引(0=Sun,1=Mon,…,6=Sat),完美匹配
  • 如果不想修改原数组,可以先复制一份再修改(推荐,避免影响其他地方使用原数组)

修正后的代码

// 定义星期数组
var weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
// 获取当前日期
var d = new Date();
// 获取当日对应的数组索引(0-6)
var dayIndex = d.getDay();

// 复制原数组(如果允许修改原数组,这步可以省略,直接操作weekdays)
var todayCal = [...weekdays];
// 将对应索引的元素替换为'Today'
todayCal[dayIndex] = 'Today';

// 输出结果看看
console.log(todayCal);

代码解释

  1. 用扩展运算符[...weekdays]复制原数组,这样原数组weekdays不会被修改,保证数据纯净
  2. 直接用dayIndex(当日对应的索引)定位到数组元素,替换成'Today',精准对应当日
  3. 最后输出的todayCal就是你想要的替换后的数组啦

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:14:56