Отфильтруйте список дат с общими днями с использованием ramda - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть два списка дат.Я хотел бы остаться со списком, который содержит только те дни, которые имеют два общих списка.Для этого я думаю использовать filter и any для сравнения двух.

const dates = [
  "2019-05-19T09:00:00.000Z",
  "2019-05-20T17:00:00.000Z",
  "2019-05-21T17:00:00.000Z"
]

const datesToCompare = [
  "2019-05-21T17:00:00.000Z"
]

// when filtered should leave us with:
[
  "2019-05-21T17:00:00.000Z"
]

Для каждого элемента мне нужно будет сравнить его, используя функцию предиката из date-fns с именем isSameDay.(Как видно из названия, оно сравнивает две даты и говорит, что они в один день).

1 Ответ

0 голосов
/ 30 ноября 2018

Вы можете использовать innerJoin

Принимает предикат pred, список xs и список ys, и возвращает список xs ', содержащий каждый из элементов xs, которыйравно одному или нескольким элементам ys в соответствии с пред.

R.innerJoin(dateFns.isSameDay, dates, datesToCompare);

Пример:

const dates = [
  "2019-05-19T09:00:00.000Z",
  "2019-05-20T17:00:00.000Z",
  "2019-05-21T17:00:00.000Z"
]

const datesToCompare = [
  "2019-05-21T17:00:00.000Z"
]

console.log(

  R.innerJoin(dateFns.isSameDay, dates, datesToCompare)

)
<script src="https://cdnjs.cloudflare.com/ajax/libs/date-fns/1.29.0/date_fns.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js"></script>
...