JavaScript中如何向对象的time字段追加日期实现最优拼接?
优化实现方案
- 方案1:使用ES6模板字符串优化拼接可读性
相比加号拼接的写法,模板字符串语法更直观,减少拼接符号的冗余,兼容性覆盖绝大多数现代前端项目场景:object.time = `${date} ${object.time}` - 方案2:不可变更新(不修改原对象)
如果是在状态管理、React组件等不允许直接修改原对象的场景,推荐用扩展运算符或者Object.assign生成全新对象,避免副作用:// 扩展运算符写法 const newObj = { ...object, time: `${date} ${object.time}` } // Object.assign写法 const newObj = Object.assign({}, object, { time: `${date} ${object.time}` }) - 方案3:增加边界校验兼容异常场景
如果存在date或原time字段为空的可能性,可以加兜底逻辑避免拼接出undefined、多余空格等异常值:object.time = `${date || ''} ${object.time || ''}`.trim() - 方案4:长期维护优化建议
如果业务后续还需要单独使用日期、时间维度的数据,建议拆分两个字段存储,需要展示完整时间时再拼接,避免后续还要做字符串拆分操作,提升可维护性:// 存储结构 const obj = { id: 1, date: '2021-12-01', time: '12:10:09' } // 使用时拼接 const fullTime = `${obj.date} ${obj.time}`
内容的提问来源于stack exchange,提问作者mester lio
相关产品推荐
相关产品推荐

