Javascript 基于对象数组递归地创建对象数组
我有这样一个对象数组:Javascript 基于对象数组递归地创建对象数组,javascript,node.js,typescript,Javascript,Node.js,Typescript,我有这样一个对象数组: myArr = [ { "id": "aaa.bbb" }, { "id": "aaa.ccc" }, { "id": "111.222" }, { "id": "111.333" }, ] 我的目标是能够在嵌套旧数组的同时,为Id的每个部分创建一个新数组。像这样: newArra
myArr = [
{ "id": "aaa.bbb" },
{ "id": "aaa.ccc" },
{ "id": "111.222" },
{ "id": "111.333" },
]
我的目标是能够在嵌套旧数组的同时,为Id的每个部分创建一个新数组。像这样:
newArray = [
{
"id": "aaa",
"children": [{ "id": "aaa.bbb" }]
},
{
"id": "aaa",
"children": [{ "id": "aaa.ccc" }]
},
{...}
]
如果有更大的Id,则可以使用多个子字符串执行此操作。请使用Array.prototype.map
简化:
const newArray = myArr.map( function( e ) {
return {
id: e.id.split( '.' )[0],
children: [ e ]
};
} );
进一步:
const newArray = myArr.map( e => { id: e.id.split( '.' )[0], children: [ e ] } );
使用Array.prototype.map
简化:
const newArray = myArr.map( function( e ) {
return {
id: e.id.split( '.' )[0],
children: [ e ]
};
} );
进一步:
const newArray = myArr.map( e => { id: e.id.split( '.' )[0], children: [ e ] } );
您可以使用map在数组中进行迭代,并在适当的位置改变对象 myArr=[{id:aaa.bbb},{id:aaa.ccc},{id:111.222},{id:111.333},] 结果=myArr.mapo=>{[id]:o.id.split[0],[children]:[o]}
logresult您可以使用map遍历数组,并在适当的位置修改对象 myArr=[{id:aaa.bbb},{id:aaa.ccc},{id:111.222},{id:111.333},] 结果=myArr.mapo=>{[id]:o.id.split[0],[children]:[o]} console.logresult