js平铺对象转化树形数据

问题描述

{
  'A': 1,
  'B.A': 2,
  'B.B': 3,
  'CC.D.E': 4,
  'CC.D.F': 5
};
--------------转换成----------------------
 {
   'A': 1,
     'B': {
       'A': 2,
       'B': 3
     },
    'CC': {
      'D': {
        'E': 4,
        'F': 5
      }
    }
 }

实现代码

let cc = {'A': 1, 'B.A': 2, 'B.B': 3, 'CC.D.E': 4, 'CC.D.F': 5}
var printOut = function(cc){
  let res = {};
  let loca = {};
  Object.keys(cc).forEach((item,index)=>{
    let temp = item.split('.');
    loca = res
    temp.forEach((itemson,indexson)=>{
       if( loca[itemson]){
         loca=loca[itemson];
       }else{
         if(indexson===temp.length-1){
           loca[itemson] = cc[item]
         }else{
           loca[itemson] = {};
         }
         loca=loca[itemson];
       }
    })
  })
  console.log(res)
}
printOut(cc)

结果展示

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值