吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 724|回复: 8
收起左侧

[求助] js数据格式转换求助

[复制链接]
cop007 发表于 2021-11-18 16:43
大佬们 请问一下怎么将如下数组格式

[JavaScript] 纯文本查看 复制代码
[
  'com.yt.iot.store2.k1.IotStoreK1',
  'com.yt.util.HttpUtil',
  'com.yt.iot.store2.k1.task.RealTimeRedisStatTask'
]


转换为如下格式

[JavaScript] 纯文本查看 复制代码
[
  {
    name: 'com',
    children: [
      {
        name: 'yt',
        children: [
          {
            name: 'iot',
            children: [
              {
                name: 'store2',
                children: [
                  {
                    name: 'k1',
                    children: [
                      { name: 'IotStoreK1' },
                      {
                        name: 'task',
                        children: [{ name: 'RealTimeRedisStatTask' }]
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            name: 'util',
            children: [{ name: 'HttpUtil' }]
          }
        ]
      }
    ]
  }
]


或者如下格式

[JavaScript] 纯文本查看 复制代码
[
  { id: 'com', name: 'com' },
  { id: 'yt', name: 'yt', pid: 'com' },
  { id: 'iot', name: 'iot', pid: 'yt' },
  { id: 'util', name: 'util', pid: 'yt' },
  { id: 'HttpUtil', name: 'HttpUtil', pid: 'util' },
  { id: 'store2', name: 'store2', pid: 'iot' },
  { id: 'k1', name: 'k1', pid: 'store2' },
  { id: 'IotStoreK1', name: 'IotStoreK1', pid: 'k1' },
  { id: 'task', name: 'task', pid: 'k1' },
  { id: 'RealTimeRedisStatTask', name: 'RealTimeRedisStatTask', pid: 'task' }
]


谢谢大佬们~


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

howyouxiu 发表于 2021-11-18 16:48
遍历,然后split分割就可以简单实现了
爱吃鹅肉饭 发表于 2021-11-18 17:23
好兄弟你正好可以练习一哈遍历以及数组的一些基本用法
zhou773 发表于 2021-11-18 17:26
 楼主| cop007 发表于 2021-11-18 18:13
howyouxiu 发表于 2021-11-18 16:48
遍历,然后split分割就可以简单实现了

谢谢大佬建议 用的遍历加数组去重实现的第二种数据格式
 楼主| cop007 发表于 2021-11-18 18:14
爱吃鹅肉饭 发表于 2021-11-18 17:23
好兄弟你正好可以练习一哈遍历以及数组的一些基本用法

谢谢大佬建议 用的遍历加数组去重实现的第二种数据格式
 楼主| cop007 发表于 2021-11-18 18:16

谢谢大佬 用了个笨办法实现了[/捂脸]
WA0fifteen 发表于 2021-11-18 19:20
先分割数据,重组成你想要的格式,再用fastJSON转换一下
bly27984 发表于 2021-11-18 23:02
1.
[JavaScript] 纯文本查看 复制代码
let a=[
  'com.yt.iot.store2.k1.IotStoreK1',
  'com.yt.util.HttpUtil',
  'com.yt.iot.store2.k1.task.RealTimeRedisStatTask'
];
let b=[];
let log=console.log;
a.forEach(i=>{
    let e=i.split('.');
    let l=e.reduce((m,n)=>{
        
        let k={name:n,children:[]}
        
        let j=m.find(u=>{
            return u.name==n;
        });
        if(j!=undefined) 
            return j.children;
        m.push(k);
        return k.children;
    },b);
});
log(b);

2.
[JavaScript] 纯文本查看 复制代码
let a=[
  'com.yt.iot.store2.k1.IotStoreK1',
  'com.yt.util.HttpUtil',
  'com.yt.iot.store2.k1.task.RealTimeRedisStatTask'
];
let b=[];
let log=console.log;
a.forEach(i=>{
    let e=i.split('.');
    let l=e.reduce((m,n)=>{
        
        let k={id:n,name:n,pid:m};
        if(b.find(x=>x.id==n)==undefined)
			b.push(k);
        return n;
    },'');
});
log(b);

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cop007 + 1 + 1 感谢大佬!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 20:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表