如何在Integromat应用程序中解析所有日期以作为响应?

问题描述

作为回应,我得到了一个包含许多数据字段的大对象。我需要一个将遍历对象所有属性函数,如果它是一个日期,请为该字段应用implementation 'com.heinrichreimersoftware:material-intro:2.0.0'。此功能对于其他模块必须是通用的。 我注意到iml.parseDate(value)返回typeof(date),所以我不知道该怎么做。

" string"

解决方法

您可以遍历对象或数组并使用regexp匹配日期。

例如

function convertDates(obj) {
    Object.keys(obj).forEach(key => {
        let val = obj[key];

        if (Array.isArray(val)) {
            val.forEach(convertDates);
        }
        
        else if (typeof val === 'object') {
            return convertDates(val);
        }
        
        else if (/\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}\s+(?:PM|AM)\s+\+\d{4}/.test(val)) {
            obj[key] = parseDate(val);
        }
    });
    
    return obj;
}