Нужно получить массив объектов, в нем заменить childrenId на полный объект, если childrenId и id совпадают
const obj = [
{
id: 1,
name: 'aa',
children: {
childrenId: 3
}
},
{
id: 2,
name: 'bb',
children: null
},
{
id: 3,
name: 'cc',
children: {
childrenId: 1
}
}
];
let result = [];
for (let i = 0; i < obj.length; i++){
if (obj[i].children){
let index = obj[i].children.childrenId;
obj[i].children.childrenId = obj[index];
result.push(obj[i]);
}
}
console.log(result)
есть такая попытка решения ...
Ответы (1 шт):
Автор решения: WalkMess
→ Ссылка
//По описанию что-то вроде этого вам нужно
const data = [
{
id: 1,
name: 'aa',
children: {
childrenId: 1
}
},
{
id: 2,
name: 'bb',
children: null
},
{
id: 3,
name: 'cc',
children: {
childrenId: 3
}
}
];
const filterData = data.map(({id, children}) => {
if (id === children?.childrenId) {
return children.childrenId = {...data};
}
})
console.log(filterData);
Вот еще такой сделал вариант.
const data = [
{
id: 1,
name: 'aa',
children: {
childrenId: 1,
},
},
];
for (const element of data) {
const { id, children } = element;
if (id === children?.childrenId) {
children.childrenId = { ...data };
}
console.log(element);
}