ОБНОВЛЕНИЕ Здесь есть множество хороших ответов (я до сих пор голосовал за всех).Вот что я в итоге придумала:
a.filter(x => x.b.some(y => y>10)).map((z) => {
return {
b: z.b.filter(zb => zb>10),
c: z.c
}
})
Объяснение:
Вы берете «a» и фильтруете его, чтобы включить только те элементы, для которых «b» имеет «некоторый элемент».у такой, что у> 10 '.Таким образом, в этот момент вы бы отфильтровали третий элемент «a», так как в его «b» нет элементов, которые> 10. Теперь у вас есть это:
[
{
b: [1, 11, 12],
c: "a1"
},
{
b: [2, 56, 1],
c: "a2"
}
]
Следующая картаэтот новый массив, т.е.для каждого элемента вы возвращаете новый элемент в новом массиве, который имеет то же значение 'c' и то же значение 'b', за исключением того, что фильтруется, чтобы включить только те элементы, которые> 10. Таким образом, вы получите:
[
{
b: [11, 12],
c: "a1"
},
{
b: [56],
c: "a2"
}
]
Спасибо за ваш вклад!