我有来自父对象内部的嵌套对象的一些属性,但我希望将嵌套对象与父对象合并为扁平对象。
原始对象:
enrollment = {
user: {
id: 'string',
name: 'string'
},
finished: 'boolean',
path: 'string'
}预期扁平物体:
user: {
id: 'string',
name: 'string',
finished: 'boolean',
path: 'string'
}发布于 2020-04-21 01:31:38
您可以递归地构建对象,任意数量的嵌套对象。因此,这个函数不是依赖于情况的。
var enrollment = {
user: {
id: 'string',
name: 'string'
},
finished: 'boolean',
path: 'boolean'
}
var enrollment2 = {
user: {
id: 'string',
name: 'string'
},
test: {
test1: {
test2: {
val0:'val0',
test4: { //3rd level nested object for example
val1: 'val1',
val2: 'val2'
}
}
}
},
finished: 'boolean',
path: 'boolean'
}
const flat = (obj, out) => {
Object.keys(obj).forEach(key => {
if (typeof obj[key] == 'object') {
out = flat(obj[key], out) //recursively call for nesteds
} else {
out[key] = obj[key] //direct assign for values
}
})
return out
}
console.log(flat(enrollment, {}))
console.log(flat(enrollment2, {}))
https://stackoverflow.com/questions/61333126
复制相似问题