扁平化JSON

22 阅读1分钟

扁平化JSON

  const objData = {
    menu: {
      system: {
        role: '角色',
        setting: '设置',
      },
      home: '首页',
    },
  }

  const flatObj = (obj, keys = []) => {
    return Object.entries(obj).reduce((all, [key, value]) => {
      return Object.assign(all, (value instanceof Object) ? flatObj(value, keys.concat(key)) : { [keys.concat(key).join('.')]: value })
    },{})
  }
  console.log(flatObj(objData))

输出:

{
    "menu.system.role": "角色",
    "menu.system.setting": "设置",
    "menu.home": "首页"
}