[基于父元素类型的json格式

问题描述 投票:2回答:2

我有一个JSON,我需要与类型1不同的每个人都必须在类型1的正下方成为类型1的子对象

即,如果它不同于1并且在类型1的正下方,则该值必须成为类型1的嵌套对象

示例

array = [
  {
    name: 'name1',
    type: 1
  },
  {
    name: 'name2',
    type: 2
  },
  {
    name: 'name3',
    type: 3
  },
  {
    name: 'name4',
    type: 1
  },
  {
    name: 'name5',
    type: 2
  },
]

下面的数组应该变成这样。

arrayFormated = [
  {
    name: 'name1',
    type: 1
    child: [
      {
        name: 'name2',
        type: 2
      },
      {
        name: 'name3',
        type: 3
      }
    ]
  },

  {
    name: 'name4',
    type: 1,
    child: [{
      name: 'name5',
      type: 2
    }]
  },
]

我尝试使用地图

  this.formatedArray = array.map((x, index) => {
    if (x.type !== 1) {
      return {
        name: x.name
        type: x.type
      }
    }
javascript json angular
2个回答
1
投票

您可以使用各种方法。例如,最冗长的用法是使用循环(不确定是否确实有效,未运行,将其视为伪代码pls):


0
投票

您可以使用for循环在数组上进行迭代,并且如果项的type1,则可以将其分配给parent

© www.soinside.com 2019 - 2024. All rights reserved.