Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将数组对象推入另一个数组中?_Javascript_Typescript_Ecmascript 6 - Fatal编程技术网

Javascript 如何将数组对象推入另一个数组中?

Javascript 如何将数组对象推入另一个数组中?,javascript,typescript,ecmascript-6,Javascript,Typescript,Ecmascript 6,我想匹配id和parentId并获取新对象 { element: [ { data: { id: '1', parentId: 0, name: 'x' }, element: [ { data: { id: '2', parentId: 1, name: 'y' },

我想匹配id和parentId并获取新对象

{
  element: [
    {
      data: {
        id: '1',
        parentId: 0,
        name: 'x'
      },
      element: [
        {
          data: {
            id: '2',
            parentId: 1,
            name: 'y'
          },
          element: [
            {
              data: {
                id: '3',
                parentId: 2,
                name: 'z'
              },
              element: [
                {
                  data: {
                    id: '5',
                    parentId: 3,
                    name: 'e'
                  },
                  element: [
                    {
                      data: {
                        id: '6',
                        parentId: 5,
                        name: 'r'
                      },
                      element: [

                      ]
                    }
                  ]
                }
              ]
            },
            {
              data: {
                id: '4',
                parentId: 2,
                name: 'q'
              },
              element: [

              ]
            }
          ]
        }
      ]
    }
  ]
}
元素可以包含多个数据,并且必须根据id匹配进行嵌套

我找不到如何匹配,转换后可以搜索新列表吗

有可能实现这样的动态功能吗

我将在角度项目中使用此代码

第一阵列

[
  {
    id: '1',
    parentId: 0,
    name: 'x'
  },
  {
    id: '2',
    parentId: 1,
    name: 'y'
  },
  {
    id: '3',
    parentId: 2,
    name: 'z'
  },
  {
    id: '4',
    parentId: 2,
    name: 'q'
  },
  {
    id: '5',
    parentId: 3,
    name: 'e'
  },
  {
    id: '6',
    parentId: 5,
    name: 'r'
  }
]
新对象

{
  element: [
    {
      data: {
        id: '1',
        parentId: 0,
        name: 'x'
      },
      element: [
        {
          data: {
            id: '2',
            parentId: 1,
            name: 'y'
          },
          element: [
            {
              data: {
                id: '3',
                parentId: 2,
                name: 'z'
              },
              element: [
                {
                  data: {
                    id: '5',
                    parentId: 3,
                    name: 'e'
                  },
                  element: [
                    {
                      data: {
                        id: '6',
                        parentId: 5,
                        name: 'r'
                      },
                      element: [

                      ]
                    }
                  ]
                }
              ]
            },
            {
              data: {
                id: '4',
                parentId: 2,
                name: 'q'
              },
              element: [

              ]
            }
          ]
        }
      ]
    }
  ]
}

在查找
数组中查找()。基本上,为搜索传递一个简单的表达式。

我认为这就是您想要的。您可以使用lodash来实现这一点。抱歉,格式错误。问题结束了。无法作为答案发布
function transformToTree(arr){var nodes={};返回arr.filter(function(obj){var id=obj[“id”],parentId=obj[“parentId”];nodes[id]=..defaults(obj,nodes[id],{element:[]});parentId&(nodes[parentId]=(nodes[parentId]|{element:[]])[“element”].push(obj);return!parentId;});}