Перебирая массив дат, чтобы выяснить, соответствует ли какая-либо из них дате - PullRequest
0 голосов
/ 01 октября 2019

Мне нужно проверить, эквивалентно ли значение даты каким-либо датам в массиве, который у меня есть (включая значение времени).

По какой-то причине, когда я перебираю этот массив, angular не позволит мне использовать getTime. Если я использую его, я получаю ошибку: element.start.getTime не является функцией. На данный момент, поскольку даты массива и newEvent, как я полагаю, имеют несколько разные форматы, функция всегда возвращает false, даже если есть эквивалентные даты.

Вот эта функция:

 seeIfAppStartExists(appStart: Date) {
      let ret = false;
      this.eventsArray.forEach(element => {
       // tslint:disable-next-line: triple-equals
      if (element.start == appStart) {
            ret = true;
       }
   });

   return ret;

   }

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Есть несколько проблем с вашей реализацией. Как и в предыдущем ответе, вы можете использовать new Date(element.start) для фактического получения объекта даты. Затем вы можете вызвать getTime() для этого объекта и использовать его для сравнения. Но другая проблема с вашей логикой заключается в том, как вы меняете значение ret для каждой итерации. По сути, ваш код сообщит вам только, если время начала элемента last соответствует вашему appStart. Потому что именно он устанавливает значение ret в конце. Все остальные значения будут игнорироваться.

0 голосов
/ 01 октября 2019

Если при вызове функции getTime () появляется ошибка «.getTime не является функцией», вам нужно использовать ключевое слово new для создания нового экземпляра объекта.

    let eventsArray = [{start : '2019-09-30T23:22:59.534Z'}, {start : '2019-11-30T23:22:59.534Z'}]
    function seeIfAppStartExists(appStart: Date) {
          let ret = false
          eventsArray.forEach(element => {
          let time = new Date(element.start)
          if (time.getTime() === appStart.getTime()) {
                ret = true;
           }
       });
       return ret;
    }

    console.log(seeIfAppStartExists(new Date('2019-09-30T23:22:59.534Z')))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...