Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环遍历日期数组,找出其中是否有与给定日期匹配的日期_Javascript_Arrays_Angular_Date - Fatal编程技术网

Javascript 循环遍历日期数组,找出其中是否有与给定日期匹配的日期

Javascript 循环遍历日期数组,找出其中是否有与给定日期匹配的日期,javascript,arrays,angular,date,Javascript,Arrays,Angular,Date,我需要检查日期值是否等于数组中的任何日期(包括时间值) 出于某种原因,当我循环这个数组时,angular不允许我使用getTime。如果我使用它,我会得到错误:element.start.getTime不是一个函数。到目前为止,因为数组日期和我认为的newEvent的格式略有不同,所以即使有相同的日期,函数也总是返回false 以下是所讨论的功能: seeIfAppStartExists(appStart: Date) { let ret = false; this.e

我需要检查日期值是否等于数组中的任何日期(包括时间值)

出于某种原因,当我循环这个数组时,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;

   }
如果在调用getTime()函数时出现错误“.getTime不是函数”,则需要使用new关键字来创建新的对象实例


您的实现存在一些问题。正如上面的答案所说,您可以使用
newdate(element.start)
来实际获取日期对象。然后可以对该对象调用
getTime()
,并使用它进行比较。但是逻辑的另一个问题是如何为每次迭代更改
ret
的值。本质上,您的代码只会告诉您最后一个元素的开始时间是否与
appStart
匹配。因为这是在最后设置
ret
值的方法。所有其他值都将被忽略

听起来像
元素。start
是字符串,而不是日期对象。根据提供一个可运行的示例
    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')))