@kachurinets

Как создать новый массив на основе вложенного массива объектов?

У меня есть некоторые проблемы с созданием нового массива, который будет содержать в себе вложенные массивы элементов.

https://jsfiddle.net/4pus0b53/

Я прохожусь циклом и рекурсией проверяю вложенность.
Мне нужно на выходе получить похожий обьект с такой же вложенностью. На выходе должен быть такой же массив, с такой же вложеностью, но только с новыми названиями и возможно с какими-то новыми полями.

let newArray = [
	{
  'label': 'root',
  'other': 'test field',
	'children': [
        {
            'label': 'Screening',
            'other': 'something other'
            'items': [
                {
                    "label": "Analyst",
                    "items": [
                        {
                            'label': "value2",
                            "filesId": "424"
                        },
                        {
                            "label": "value3",
                            "filesId": "320"
                        },
                        {
                            "label": "value4",
                            "filesId": "320"
                        }
                    ]
                },
            ]
        },
        ...
    ]
  }
]

Как правильно записать этот новый обьект, нужно в моем цикле написать еще один для нового массива, чтобы проверять уровень вложенности или есть еще какой-то другой способ?
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
rockon404
@rockon404
Frontend Developer
function mapData(data) {
  return data.map((el) => {
    const override = {
      newProp: 'value',
    };
  
    if (el.children) {
      override.children = mapData(el.children);
    }
  
    return { ...el, ...override };
  });
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы