У меня есть массив объектов this.fltUsers
.
Ниже я прослушиваю входящие сообщения и выполняю фильтрацию this.fltUsers
.
this.filterForm.controls["gender"].valueChanges.subscribe(selectedValue => {
this.requestLoadPersonal = this.fltUsers.filter((p: Personal) => {
return selectedValue ? p.gender == selectedValue : true;
});
});
this.filterForm.controls["position"].valueChanges.subscribe(
selectedValue => {
this.requestLoadPersonal = this.fltUsers.filter((p: Personal) => {
return selectedValue ? p.positionId == selectedValue : true;
});
}
);
Где this.requestLoadPersonal
содержит отфильтрованные данные.
Как передать результат первой фильтрации второму?Сделать условие AND
между двумя filters
?Как восстановить исходный объект?
Возможно, я могу использовать замену, например:
if (this.requestLoadPersonal !== this.fltUsers) {
// FILTER BY this.requestLoadPersonal
} else {
// FILTER BY this.fltUsers
}
Кажется, я должен сохранять оператор объекта каждый раз перед изменением, затем я могу восстановить его до предыдущего оператора.