JavaScript 对象扁平化

Posted 乱舞春秋__

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 对象扁平化相关的知识,希望对你有一定的参考价值。

javascript对象扁平化

我们平时肯定遇到过多层嵌套的对象,name如何将它扁平化呢?一起来看看吧!
函数封装如下:

function flatten (obj) {
      const ans = {}
      inner(obj, null)
      function inner (o, prev) {
        for (let key in o) {
          if (o[key] instanceof Object) {
            if (prev === null) {
              inner(o[key], key)
            } else {
              inner(o[key], prev + '.' + key)
            }
          } else {
            if (prev === null) {
              ans[key] = o[key]
            } else {
              ans[prev + '.' + key] = o[key]
            }
          }
        }
      }
      return ans
    }

将一个多层嵌套的对象传入,将返回一个扁平化后的对象。
示例:

const obj = {
      a: 1,
      b: { c: 2, d: 3 },
      e: { f: { g: 4 } },
      h: { i: { j: 5, k: 6 } }
    }

对象obj是一个多层嵌套的对象,将其传入flatten函数,将得一个扁平化的对象:

{ a: 1, b.c: 2, b.d: 3, e.f.g: 4, h.i.j: 5, h.i.k: 6 }

以上即为扁平化一个对象的方法。

以上是关于JavaScript 对象扁平化的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 对象扁平化

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象

JavaScript 扁平与树形数组数据的转换

JavaScript 数据扁平化处理

Javascript中扁平化数据结构与JSON树形结构转换详解