如何根据日期对应的星期将listOrder值追加到dataTemp数组的日期字段
你可以利用JavaScript内置Date对象的getDay()方法实现需求,该方法会返回0(周日)到6(周六)的整数值,刚好和你定义的listOrder数组索引一一对应。
实现代码
方案1:生成新数组(不修改原dataTemp)
如果你需要保留原dataTemp数组的数据,推荐用map方法生成新数组:
let listOrder = ['日', '月', '火', '水', '木', '金', '土']; let dataTemp = [ { calendar_date: '2021/11/7' }, { calendar_date: '2021/11/8' }, { calendar_date: '2021/11/9' }, { calendar_date: '2021/11/10' }, { calendar_date: '2021/11/11' }, { calendar_date: '2021/11/12' }, { calendar_date: '2021/11/13' }, { calendar_date: '2021/11/14' }, { calendar_date: '2021/11/15' }, { calendar_date: '2021/11/16' }, { calendar_date: '2021/11/17' }, { calendar_date: '2021/11/18' }, { calendar_date: '2021/11/19' }, { calendar_date: '2021/11/20' } ]; const data = dataTemp.map(item => { const weekIdx = new Date(item.calendar_date).getDay(); return { calendar_date: `${item.calendar_date} ${listOrder[weekIdx]}` }; });
执行后得到的data就是你需要的目标数组格式。
方案2:直接修改原dataTemp数组
如果你不需要保留原数组数据,可以直接遍历修改:
dataTemp.forEach(item => { const weekIdx = new Date(item.calendar_date).getDay(); item.calendar_date = `${item.calendar_date} ${listOrder[weekIdx]}`; });
注意事项
你当前使用的YYYY/MM/DD日期格式是所有浏览器都兼容的Date解析格式,无需担心兼容性问题。如果后续换用YYYY-MM-DD格式,需要注意部分旧版Safari浏览器的解析异常问题。
内容的提问来源于stack exchange,提问作者Phương Nam
相关产品推荐
相关产品推荐

