@campus1

Как структурировать данные?

Есть массив выбранных элементов:
Selected data

const selectedArr = [
  {
    name: 'Hello1',
    number: '1211211221'
  }, 
  {
    name: 'Hello2',
    number: '1222121'
  },
  {
    name: 'Hello3',
    number: '121212121'
  },
];



Есть выбранный объект, который принадлежит к массиву начальных данных (смотреть ниже):
Selected object

const selectedAcc = {
  id: '',
  name: {value: 'Fixed Assets', translations: {}},
  type: 'AccountGroup'
};



Массив начальных данных:
Starter data

const data = [
	{
		id: '',
		name: {value: 'Assets', translations: {}},
		type: 'AccountGroup',
		children: [
			{
				id: '',
				name: {value: 'Fixed Assets', translations: {}},
				type: 'AccountGroup',
                children: []
			},
			{
				id: '',
				name: {value: 'Current Assets', translations: {}},
				type: 'AccountGroup',
                children: []
			}
		]
	},
	{
		id: '',
		name: {value: 'Equity capital and Debts', translations: {}},
		type: 'AccountGroup',
		children: [
			{
				id: '',
				name: {value: 'Equity capital', translations: {}},
				type: 'AccountGroup',
                children: []
			},
			{
				id: '',
				name: {value: 'Untaxed reserves', translations: {}},
				type: 'AccountGroup',
                children: []
			},
			{
				id: '',
				name: {value: 'Allocations and provisions', translations: {}},
				type: 'AccountGroup',
                children: []
			},
			{
				id: '',
				name: {value: 'Non-current ilabilities', translations: {}},
				type: 'AccountGroup',
                children: []
			},
			{
				id: '',
				name: {value: 'Short term ilabilities', translations: {}},
				type: 'AccountGroup',
                children: []
			}
		]
	}
];



В конечном результате должно выйти:
Final Result

const finalResult = [
  {
		id: '',
		name: {value: 'Assets', translations: {}},
		type: 'AccountGroup',
		children: [
			{
				id: '',
				name: {value: 'Fixed Assets', translations: {}},
				type: 'AccountGroup',
                children: [
                  {
                    id: '',
                    name: {value: 'Hello1', translations: {}},
                    number: '1211211221',
                    type: 'AccountGroup'
                  },
                  {
                    id: '',
                    name: {value: 'Hello2', translations: {}},
                    number: '1211212311221',
                    type: 'AccountGroup',
                  },
                  {
                    id: '',
                    name: {value: 'Hello3', translations: {}},
                    number: '3232323',
                    type: 'AccountGroup'
                  }
                ]
			}
		]
	}
]



То есть, нужно найти выбранный объект в начальном массиве данных, выбрать его и родителя и запушить данные в его children.
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ответы на вопрос 1
rockon404
@rockon404
Frontend Developer
selectedAcc.children = selectedArr;

Если массив уже существует и надо его дополнить:
selectedAcc.children.push(...selectedArr);
или:
selectedAcc.children = selectedAcc.children.concat(selectedArr);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы