我有一组数据,如下所示
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)
}
有没有更好的方法来解决这个问题?在创建这样的函数结构时,我应该担心什么问题吗?
编辑:在低内存意义上更好,并使搜索和验证操作更快。
如果结构是固定的,也许最快的方法是创建一个假的但有效的对象,然后比较它们的属性。
o.property.meta.data.length > fake.property.meta.data.length // 或 num maxlength