Hi I have an array of objects which contains another array of objects.
I need to find an object in array which contains another object in it's array with certain propery
ID.
Let's say i need to find an object in casses
array which contains a user with certain ID.
ID for user is unique.
casses = [
{
caseName: 'case 1',
date: '2021-05-4',
id: '123',
user: [{name: 'Vlad', id: '1'}, {name: 'Misha', id: '2'}]
},
{
caseName: 'case 2',
date: '2021-05-4',
id: '123',
user: [{name: 'Alina', id: '3'}, {name: 'Alex', id: '4'}]
},
{
caseName: 'case 3',
date: '2021-05-4',
id: '123',
user: []
},
]
I could use a nested loops and so on. But i wondering is it possible to do with one line ? Something like this but one level deeper:
let val = casses(item => item.id === element.id);
CodePudding user response:
Assume your case with ID
set to "3"
Try below
const ID = "3";
const casses = [
{
caseName: "case 1",
date: "2021-05-4",
id: "123",
user: [
{ name: "Vlad", id: "1" },
{ name: "Misha", id: "2" }
]
},
{
caseName: "case 2",
date: "2021-05-4",
id: "123",
user: [
{ name: "Alina", id: "3" },
{ name: "Alex", id: "4" }
]
},
{
caseName: "case 3",
date: "2021-05-4",
id: "123",
user: []
}
];
casses.find(item => item.user.some(subItem => subItem.id === ID));