сравнить элементы массива в фильтре с другими элементами другого массива - PullRequest
1 голос
/ 06 апреля 2020

Я пытаюсь отобразить строку «доступность», но я бы хотел исключить доступность со значениями, подобными значениям элемента из другого массива «дата»

время начала и время окончания и длительность

  1. как сравнить их с другим элементом массива 'date'?
  2. как сравнить только одно заданное значение c, например, только продолжительность?
var date: [{
      client: 'jessica',
      start: '10:00',
      end: '10:30',
      duration: 30,
    },

    {
      client: 'joe',
      start: '11:00',
      end: '12:00',
      duration: 60,

    }
  ],

  var availabilities: [{
        start: '10:00',
        end: '10:30',
        duration: 30,
      },


      {

        start: '11:00',
        end: '12:00',
        duration: 60,

      },

      {
        start: '12:00',
        end: '13:00',
        duration: 60,

      },

      {
        start: '13:00',
        end: '14:00',
        duration: 60,

      },


    ],


    {
      disponibilitie.filter(availabilities =>
        availabilities.start !== date.start &&
        availabilities.end !== date.end &&
        availabilities.duration !== date.duration).map((availabilities) => {
        return ( <option value = {
            availabilities.duration
          } >
          {
            availabilities.start
          } - {
            availabilities.end
          } </option>
        )
      })
    }

ожидаемый результат: {начало: '12: 00 ', конец: '13 : 00 ', длительность: 60, js

1 Ответ

0 голосов
/ 06 апреля 2020

1 - как сравнить их с другим элементом массива 'date'?

availabilities.filter((el) => {
  return date.some((f) => {
    return el.start === f.start && el.end === f.end && el.duration === f.duration;
  });
});

2 - как сравнить только одно указанное значение c, например, только продолжительность?

availabilities.filter((el) => {
  return date.some((f) => {
    return el.duration === f.duration;
  });
});

Вы можете добавить "!" перед "date.some", если вы хотите, чтобы не соответствующие элементы.

...