1

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

[
    {
        "id": 13965629,
        "updated_at": "2020-07-10 02:01 PM +0300",
        "created_at": "2020-07-10 02:01 PM +0300",
        "creator": {
            "name":"Jon Doe",
            "registered": "2020-06-22 12:31 PM +0100",
        }
    }
]
4

1 回答 1

1

您可以通过对象或数组进行交互,并使用正则表达式匹配日期。

例如

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;
}
于 2020-10-09T08:26:23.793 回答