У меня есть рабочий фильтр с двумя ограничениями.
1: он работает как 'или' вместо 'и', когда есть несколько значений.
например
filterArr = {'claim_number': null, 'status': 'Approved', 'patient': 'John Connor', 'service_date': null}
this.rows = [
{ 'claim_number': 1234, 'status': 'Approved', 'patient': 'John Connor', 'service_date': '1/10/2018', etc ...}
{ 'claim_number': 4567, 'status': 'Approved', 'patient': 'James Brown', 'service_date': '3/11/2018', etc ...}
{ 'claim_number': 7890, 'status': 'Approved', 'patient': 'Steven Hawkins', 'service_date': '2/1/2018', etc ...}
В настоящее время все эти элементы будут соответствовать, когда только первый должен, потому что только первый имеет и «статус: одобрен», и «пациент: Джон Коннор».
2: Второе ограничениеЯ хочу инициировать совпадение, когда в this.rows есть частичная строка, совпадающая с полной строкой.
например,
filterArr = {'claim_number': 12, 'status': 'Approved', 'patient': null, 'service_date': null}
this.rows = [
{ 'claim_number': 1234, 'status': 'Approved', 'patient': 'John
Connor', 'service_date': '1/10/2018', etc ...}
{ 'claim_number': 4567, 'status': 'Approved', 'patient': 'James
Brown', 'service_date': '3/11/2018', etc ...}
{ 'claim_number': 7890, 'status': 'Approved', 'patient': 'Steven Hawkins', 'service_date': '2/1/2018', etc ...}
Опять должен совпадать только номер один, так как он содержит правильную "status "и первые две цифры в" request_number ".
Это должно быть относительно просто, поскольку у меня это работало, когда я передавал определенный ключ, но теперь, когда фильтр динамический, он, кажется, неработает правильно.
Я добавил jsFiddle для справки, хотя он не выполняется правильно, потому что я использую Reactive Forms в проекте Angular.Также, пожалуйста, включайте только ответы, которые решаются с использованием ES5 или ES6.Я не могу использовать flatMap () и другие экспериментальные функции.Спасибо.