Попробуйте это
let data = [
{
name: 'juan',
age: 16,
room: {
num: 1,
section: { id: 1, name: 'emerald' }
}
},
{
name: 'cruz',
age: 18,
room: {
num: 2
}
}
];
const section = { id: 1, name: 'emerald' };
const index = data.findIndex((x)=>{
if(x.room.section)
if(x.room.section.id === section.id)
return true
return false
});
delete data[index].room.section
console.log(data)
Если каким-то образом приведенный выше код не решил вашу проблему, вы можете попробовать что-то вроде этого
let data = [
{
name: 'juan',
age: 16,
room: {
num: 1,
section: { id: 1, name: 'emerald' }
}
},
{
name: 'cruz',
age: 18,
room: {
num: 2
}
}
];
const section = { id: 1, name: 'emerald' };
const newArray = data.map(x=>{
if(x.room.section)
if(x.room.section.id === section.id)
delete x.room.section
return x
});
//or
const newArray2 = data.map(x=>{
if(x.room.section)
if(x.room.section.id === section.id)
return {...x,room:{num:room.num}}
return x
});
console.log(newArray);
console.log(newArray2);