因此请考虑以下对象:
您可能在想,最简单的方法是在对象上循环,检查每个属性是否有效。如您所见,该对象中有一个日期对象。但是请注意clinic_id
。
这是我执行上面提到的操作的代码:
for(let property in formData) {
let date = moment(formData[property]).isValid()
if (date) {
formData[property] = moment(formData[property]).format('YYYY-MM-DD');
}
}
您可能认为这可能行得通,甚至可能建议您遍历一下,看看每个属性上的.getDate()
会说些什么,除了.getDate()
会在日期对象以外的任何对象上引发错误。
那么上面的代码输出什么:
此处唯一应为日期值的是date_of_consent
而不是clinic_id
。我知道为什么瞬间将其转换为日期,但它本不应该发生。
我将在其中包含日期对象的对象,有没有办法让我在对象中找到所述日期对象并将其替换为moment.js
格式的对象? >
答案 0 :(得分:1)
您可以通过多种方式检查是否有Date
个对象。
您可以检查每个项目的实例以检查它是否为日期:
if (formData[property] instanceof Date) // returns true or false
您还可以检查功能.getDate()
是否存在:
typeof (formData[property]).getDate === 'function'
或者尝试获取该值并捕获可能的错误:
try {
var date = formData[property].getDate();
/* Do your formatting */
} catch (e) {
//This was not a Date object
}