【发布时间】:2018-03-16 16:07:07
【问题描述】:
我有一个格式如下的数组
let array = [{id: 1, desc: 'd1', children:[{id:1.1, desc:'d1.1', children:[]}]},
{id:2, desc:'d2', children:[] },
{id:3, desc:'d3', children:[] }];
每个子元素与父元素的时间相同。我希望它把它转换成一个格式为{ [id]: {values} }的对象:
{
1: { id: 1, desc: 'd1', children: {1.1: {id:1.1, desc:'d1.1'}},
2: { id:2, desc:'d2' },
3: { id:3, desc:'d3' }
}
我尝试了很多方法,但都没有成功。例如:
let obj = array.map(a => mapArrayToObj(a));
mapArrayToObj = (e) => {
let obj = {[e.id]: e };
if(e.children.lenght > 0){
e.children = e.children.map(c => mapArrayToObj(c));
}
else{
return {[e.id]: e };
}
}
在 Javascript 中是否可行?
【问题讨论】:
-
JSON 是一种文本数据格式。你想要的只是一个对象。不涉及 JSON。我更新了您的问题以反映这一点。
-
{e.id: e }是语法错误吗?你是想写{ [e.id]: e }吗?
标签: javascript arrays json mapping key-value