如何将以下对象的路径映射到新对象中,并添加访问深度嵌套属性的路径以及其他属性。
const obj = {
key1: { level1: { level2: { prop1: {}, prop5: {} } } },
key2: { level1: { level2: { prop2: {} } } },
key3: { level1: { prop3: {}, prop6: {}, prop7: {} } },
key4: { level1: { level2: { level3: { prop4: {} } } } },
};
转化为:
const expectedObj = {
key1Level1Level2Prop1: { path: "key1.level1.level2.prop1", name: "Prop 1", id: (Math.random() * 1000000).toFixed(0) },
key2Level1Level2Prop2: { path: "key2.level1.level2.prop2", name: "Prop 2", id: (Math.random() * 1000000).toFixed(0) },
key3Level1Prop3: { path: "key3.level1.prop3", name: "Prop 3", id: (Math.random() * 1000000).toFixed(0) },
key4Level1Level2Level3Prop4: { path: "key4.level1.level2.level3.prop4", name: "Prop 4", id: (Math.random() * 1000000).toFixed(0) },
key1Level1Level2Prop5: { path: "key1.level1.level2.prop5", name: "Prop 5", id: (Math.random() * 1000000).toFixed(0) },
key3Level1Prop6: { path: "key3.level1.prop6", name: "Prop 6", id: (Math.random() * 1000000).toFixed(0) },
key3:evel1Prop7: { path: "key3.level1.prop7", name: "Prop 7", id: (Math.random() * 1000000).toFixed(0) },
};
请注意,此处映射了所有极端端点的道具
例如,prop1位于key1的极深层级中,因此在expectedObj中将其映射为prop1:{path:...}
。因此,所有极深的道具(即空对象)都应该映射到期望结果中。 请注意,每个级别的极端端点上的所有道具都是空对象 {}