在 JS 中验证对象数据的最佳方式

问题描述 投票:0回答:1

我有一组数据,如下所示

var data = {
    a:{
        a_meta_data_1:"1",
        a_meta_data_2:"2",
        children:{
            b:{
                b_meta_data_1:"1",
                b_meta_data_2:"03052024",
                children:{
                    c:{
                        c_meta_data_1:"1",
                        c_meta_data_2:"5",
                    }
                }
            }
        }
    }
}

每个字段都有独特的要求,例如a_meta_data_1的长度应为5,b_meta_data_2应为格式为“DDMMYYYY”的日期等等...

要编写一个函数来验证所有记录(可能超过 2000 条),最好的方法是什么?

我尝试的一种方法是定义如下规则,在循环数据时,检查每个对象(无论是父对象还是子对象)的每个元数据

var a_validation=   {
    a_meta_data_1:function(data){
        if(data.length <= 3){
            return false
        }
        return true
    },
    a_meta_data_2:function(data){
        if(data != 'YY'){
            return false
        }
        return true
    }
}

var b_validation =  {
    b_meta_data_1:(# a function as above),
    b_meta_data_2:(# a function as above)
}

var c_validation = {
    c_meta_data_1:(# a function as above),
    c_meta_data_2:(# a function as above)
}

有没有更好的方法来解决这个问题?在创建这样的函数结构时,我应该担心什么问题吗?

编辑:在低内存意义上更好,并使搜索和验证操作更快。

javascript serverless
1个回答
0
投票

如果结构是固定的,也许最快的方法是创建一个假的但有效的对象,然后比较它们的属性。

o.property.meta.data.length > fake.property.meta.data.length // 或 num maxlength

© www.soinside.com 2019 - 2024. All rights reserved.