我有一个树形对象,它是一棵不规则的树,每次运行代码时子节点的名称和键值都可能会改变。例如:
{
addressRouter: 192.168.0.1,
addresses:
{
address1: 'A',
},
{
address2: 'B',
},
{
ports: [
{
portA: 'C',
portB: null
},
}
route: 'D',
}
因此,名称如'addressRouter'、'addresses'、'address1'等及其键是不可预测的,但我需要将树状对象转换为以下格式的数组:
addressRouter
addresses/address1
addresses/address2
addresses/ports/portA
addresses/ports/portB
route
然后在它们旁边放置它们的键。
我有这个用于构建树的函数,它是正确的:
const iterate = (obj, obj2) => {
Object.keys(obj).forEach(key => {
obj2[key] = obj[key];
if (typeof obj[key] === 'object') {
iterate(obj[key], obj2)
}
})
}
但是在调试后,我意识到它并没有获取到所有的分支。
["addressRouter", "addresses/address1", "addresses/address2", "addresses/ports/portA", "addresses/ports/portB", "route"]
,完全按照这个格式,忽略原始对象中的值,并使用/
作为分隔符将键连接在一起? - Jey DWork