抱歉,我不知道如何正确表达这个问题,但基本上,我有这个嵌套对象nestedObj。我想动态处理这个对象,但对象的深度不固定。例如:
nestedObj = {
"property1":{
"subProperty1": {
"data": "This is the data for property1 > subProperty1"
}
},
"property2":{
"subProperty1": {
"anotherSubProperty1": {
"data": "This is the data for property2 > subProperty1 > anotherSubProperty1"
}
},
"subProperty2": {
"anotherSubProperty1": {
"data": "This is the data for property2 > subProperty2 > anotherSubProperty1"
}
}
},
"property3":{
"subProperty1": {
"data": "This is the data for property3 > subProperty1"
}
}
}
现在我想在一个for of循环中处理这个对象,我的最终目标是获取data某些节点的值。现在,每个对象节点的值的路径在另一个对象中定义:
dataPath = {
"property1": "subProperty1.data",
"property2": "subProperty2.anotherSubProperty1.data",
"property3": "subProperty1.data",
}
然后我用这个for of循环来处理它们:
properties = ["property1", "property2", "property3"];
for(var property of properties) {
path_to_data = dataPath[property].split(".");
data = nestedObj[path_to_data[0]][path_to_data[1]];
// Some other logic
}
显然,这只适用于“property1”和“property3”。我必须为所有具有 2 个以上内部节点的对象添加特殊处理。对于具有不同深度的大数据,手动添加这些特殊处理程序并不理想。所以我的问题是,在 Javascript 中,当我拥有某个节点的“路径”时,有没有办法动态处理嵌套对象。
一只萌萌小番薯
江户川乱折腾
相关分类