我正在尝试从对象复制日期属性并按如下所示进行修改,但每次我尝试修改'复制'日期属性时,我最终都会修改对象日期属性。所以有人想知道有没有办法可以修改复制的日期而不影响原始对象中的日期属性?任何有关示例代码的帮助都非常感谢。感谢
一个。对象(保存在taskObject var中)
{ name: 'test',
endDate: Thu Apr 13 2017 18:46:02 GMT+0200 (EET)
}
B中。代码:
let currentTaskEndDate = taskObject.endDate; //where taskObject is the object above
//The following line will result in taskObject.endDate to be updated by new date!
currentTaskEndDate.setDate(currentTaskEndDate.getDate() + Number(5));
答案 0 :(得分:1)
在修改日期之前使用new Date(taskObject.endDate)
创建日期的副本:
const origDate = new Date(2017, 3, 13, 16, 46, 2);
const taskObject = {
name: 'test',
endDate: origDate,
};
console.log('taskObject:', taskObject);
// Copy the original Date object before modifying it
const currentTaskEndDateCopy = new Date(taskObject.endDate);
currentTaskEndDateCopy.setDate(currentTaskEndDateCopy.getDate() + 5);
console.log('New Date object:', currentTaskEndDateCopy);
console.log('taskObject (unchanged!):', taskObject);
.as-console-wrapper{min-height:100%}
答案 1 :(得分:1)
正如@yBrodsky所提到的,使用新的Date
对象并修改它:
例如,您可以执行以下操作:
let currentTaskEndDate = new Date(taskObject.endDate);
currentTaskEndDate.setDate(currentTaskEndDate.getDate() + 5);
答案 2 :(得分:-1)