使用单行压平嵌套对象
压平嵌套对象是编程中的一项常见任务,使用现代 JavaScript 会更加简单。这是一个使用展开运算符和 Object.assign 的单行解决方案:
Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))
工作原理:
此代码使用递归函数 _flatten,它遍历嵌套对象并创建一组单属性对象。每个属性名称都映射到其对应的值,如果该值是另一个对象,则该函数递归到该对象。
展开运算符 (...) 用于展平 _flatten 创建的对象数组。然后将生成的数组传递给 Object.assign,它将所有对象组合成一个扁平对象。
输入和输出示例:
考虑以下嵌套对象:
{ a: 2, b: { c: 3 } }
在此对象上运行提供的代码将产生扁平化结果:
{ a: 2, c: 3 }
注意:
此解决方案使用ES6 功能,因此如果您使用较旧的 JavaScript 环境,可能需要调整它。
以上是如何用一行 JS 代码展平嵌套对象?的详细内容。更多信息请关注PHP中文网其他相关文章!