如何使用JavaScript中的嵌套对象展平对象

user3140824:

我有来自父对象内部的嵌套对象的一些属性,但我想将嵌套对象与要平坦的父对象合并。

原始对象:

enrollment = {
  user: {
    id: 'string',
    name: 'string'
  },
  finished: 'boolean',
  path: 'string'
}

预期的展平对象:

user: {
  id: 'string',
  name: 'string',
  finished: 'boolean',
  path: 'string'
}
尼兰卡之手:

您可以递归构建任何数量的嵌套对象。因此,此功能与您的情况无关

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, {}))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章