简洁地扁平化嵌套对象
在各种编程场景中经常需要将嵌套对象转换为扁平化结构。为了快速高效的解决方案,您可以使用简洁的单行代码。
将提供的嵌套对象:
{ a:2, b: { c:3 } }
展平为所需的输出:
{ a:2, c:3 }
采用以下 JavaScript 表达式:
Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))
这种方法背后的核心概念是递归创建一个单属性对象的数组。 Object.keys(o) 方法检索输入对象 o 的所有键。然后检查每个键 k 的对象类型。如果 typeof o[k] === 'object',则函数 _flatten 会递归地应用于嵌套对象。否则,它使用键 k 和值 o[k] 构造一个单属性对象。
[].concat(... 语法将所有这些单属性对象组合到一个数组中。最后, 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) )
这个 - liner 有效地展平嵌套对象,为您的数据转换需求提供简洁高效的解决方案。
以上是如何在 JavaScript 中简洁地展平嵌套对象?的详细内容。更多信息请关注PHP中文网其他相关文章!