У меня есть один наблюдаемый массив, как показано ниже,
var details = ko.observableArray([]);
details = [
{ AccName: "Jane Doe", ExpDt: '2019-01-10', Contract: "Trial" },
{ AccName: "John", ExpDt: '2018-12-30', Contract: "Licensed"},
{ AccName: "Doe", ExpDt: '2018-09-10', Contract: "Trial"}
];
Из этого мне нужно извлечь пользователей на основе ExpDt и Contract.
For Ex => ExpDt < today dt (2019-01-10) and having "trial" contract
Answer should be => Jane Doe
Пожалуйста, дайте мне несколько советов, как это сделать.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Использование Массив # фильтр, деструктуризация, String # split, Оператор распространения и Дата.UTC
const details=[{AccName:"Jane Doe",ExpDt:"2019-01-10",Contract:"Trial"},{AccName:"John",ExpDt:"2018-12-30",Contract:"Licensed"},{AccName:"Doe",ExpDt:"2018-09-10",Contract:"Trial"}];
const res = details.filter(({ExpDt, Contract})=>{
const darr = ExpDt.split("-");
//Date.UTC accepts months from 0 - 11
darr[1] = darr[1] - 1;
return Date.UTC(...darr) < Date.now() && Contract === "Trial";
})
console.info(res);Вы получите два результата, потому что Doe также соответствует требованиям:
ExpDt: 2018-09-10 < 2019-01-10
Contract: Trial === Trial