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.
JavaScript
x
21
21
1
casses = [
2
{
3
caseName: 'case 1',
4
date: '2021-05-4',
5
id: '123',
6
user: [{name: 'Vlad', id: '1'}, {name: 'Misha', id: '2'}]
7
},
8
{
9
caseName: 'case 2',
10
date: '2021-05-4',
11
id: '123',
12
user: [{name: 'Alina', id: '3'}, {name: 'Alex', id: '4'}]
13
},
14
{
15
caseName: 'case 3',
16
date: '2021-05-4',
17
id: '123',
18
user: []
19
},
20
]
21
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:
JavaScript
1
2
1
let val = casses(item => item.id === element.id); •
2
Advertisement
Answer
Assume your case with ID
set to “3”
Try below
JavaScript
1
31
31
1
const ID = "3";
2
3
const casses = [
4
{
5
caseName: "case 1",
6
date: "2021-05-4",
7
id: "123",
8
user: [
9
{ name: "Vlad", id: "1" },
10
{ name: "Misha", id: "2" }
11
]
12
},
13
{
14
caseName: "case 2",
15
date: "2021-05-4",
16
id: "123",
17
user: [
18
{ name: "Alina", id: "3" },
19
{ name: "Alex", id: "4" }
20
]
21
},
22
{
23
caseName: "case 3",
24
date: "2021-05-4",
25
id: "123",
26
user: []
27
}
28
];
29
30
casses.find(item => item.user.some(subItem => subItem.id === ID));
31