js数据格式转换求助
大佬们 请问一下怎么将如下数组格式[
'com.yt.iot.store2.k1.IotStoreK1',
'com.yt.util.HttpUtil',
'com.yt.iot.store2.k1.task.RealTimeRedisStatTask'
]
转换为如下格式
[
{
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' }]
}
]
}
]
}
]
或者如下格式
[
{ 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' }
]
谢谢大佬们~
遍历,然后split分割就可以简单实现了 好兄弟你正好可以练习一哈遍历以及数组的一些基本用法 开个悬赏吧 howyouxiu 发表于 2021-11-18 16:48
遍历,然后split分割就可以简单实现了
谢谢大佬建议 用的遍历加数组去重实现的第二种数据格式 爱吃鹅肉饭 发表于 2021-11-18 17:23
好兄弟你正好可以练习一哈遍历以及数组的一些基本用法
谢谢大佬建议 用的遍历加数组去重实现的第二种数据格式 zhou773 发表于 2021-11-18 17:26
开个悬赏吧
谢谢大佬 用了个笨办法实现了[/捂脸] 先分割数据,重组成你想要的格式,再用fastJSON转换一下 1.
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.
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]