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