JS: фильтрация ObservableArray

У меня есть один наблюдаемый массив, как показано ниже,

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

Пожалуйста, дайте мне несколько советов, как это сделать.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
35
1

Ответы 1

Использование Массив # фильтр, деструктуризация, 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

Другие вопросы по теме