У меня есть проблема, над которой я работаю уже пару недель, но для таких, как я, я не могу разобраться.Я не могу положить это решение в стек блиц из-за того, как оно настроено.Я собираюсь дать как можно больше деталей и фрагментов кода в надежде, что кто-нибудь может помочь мне устранить этот блокпост.У меня есть селектор, который я пытаюсь создать, который фильтрует все элементы этого типа:
export class Feature {
type: string;
geometry?: Geometry;
properties: Properties;
}
export class Properties {
_hg_id: string;
_hg_geometry: string;
id?: string;
hgResource?: string;
location?: string;
_hg_layer: string;
}
Я пытаюсь отфильтровать массив объектов на основе значения
properties._hg_layer = ''От службы ответ, который является объектом json, где я беру субмассив из объекта и передаю его своему эффекту, а затем в хранилище:
return this.http.post<Feature[]>(BASE_URL + '/view', httpBody, HEADER)
.pipe(
map((response: Feature[]) => (response['themes'][0]['layers'][0]['features'])
));
@Effect()
updateLayerData$: Observable<Action> = this.actions$.pipe(
ofType(ClientConfigActionTypes.UpdateLayerData),
switchMap(() => this.mapService.getMapViewData(BBOX, featureLayers)
.pipe(
map((features: Feature[]) => new UpdateLayerDataSuccess(features))
)));
this.updatedLayers$.pipe(
withLatestFrom(),
take(10),
mergeAll(),
map((val: Feature[]) => val.filter(f => f.properties._hg_layer === 'air15_8')))
.subscribe(val => console.log('features 2 mergeAll', val));
Первая проблема, с которой я столкнулся: не имеет значениякак я набираю вещи и как передать вещи, которые он хочет, чтобы вернуть массив Feature внутри нетипизированного массива.Я не мог заставить его просто отправить массив функций.В конечном счете, я получил его для вывода, выполнив для него либо mergeAll, либо concatAll, но когда я пытаюсь его отфильтровать, он говорит мне, что фильтр недоступен для этого.Это возвращает массив, как и должно без операторов map / filter.Я пытаюсь заставить это фильтровать, но в конечном счете хочу это в селекторе.Я был бы очень признателен за любую помощь о том, как лучше заставить селектор работать на этом