Мне нужно отфильтровать Observable и «пропустить» только поток, имеющий конкретное значение свойства в массиве объектов, который находится внутри этого потока.
Давайте рассмотрим пример.Это наблюдаемое.
const observable = of({name: 'agency', year: '2010', job: [
{name: 'plumber', city: 'Los Angeles'},
{name: 'driver', city: 'Dallas'}
]});
observable.subscribe(response => console.log(response));
Мне нужно console.log ответа (ответ должен быть целым потоком) в методе подписки, только когда в работе есть 'name: plumber' массив.
Итак, что я делаю:
observable.pipe(
filter(obs => obs.job.filter(item => item.name === 'plumber')))
.subscribe(response => console.log(response));
или
observable.pipe(
map(obs => obs.job),
filter(item => item.name === 'plumber'))
.subscribe(response => console.log(response));
К сожалению, вышеприведенные фрагменты кода не работают должным образом.
Я хочу получить весь поток, только если в массиве заданий есть ключ-значение = имя: 'сантехник'.
Если это условие выполнено, я хочу получить console.log:{name: 'agency', год: '2010', job: Array (2)}, иначе в консоли ничего не должно отображаться.
Не могли бы вы мне помочь?