Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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_Node.js_Typescript - Fatal编程技术网

Javascript 从数组中获取时间差

Javascript 从数组中获取时间差,javascript,node.js,typescript,Javascript,Node.js,Typescript,我有一个这样的数组- [ 'State is:1Time:2019-2-3 11:45:02', 'State is:1Time:2019-2-3 12:45:05', 'State is:1Time:2019-3-4 11:45:00', 'State is:2Time:2019-3-5 11:45:08', 'State is:2Time:2019-4-5 11:45:10', 'State is:2Time:2019-4-5 11:45:12', ]

我有一个这样的数组-

[ 'State is:1Time:2019-2-3 11:45:02',  
  'State is:1Time:2019-2-3 12:45:05',  
  'State is:1Time:2019-3-4 11:45:00',  
  'State is:2Time:2019-3-5 11:45:08',  
  'State is:2Time:2019-4-5 11:45:10',  
  'State is:2Time:2019-4-5 11:45:12', ]
使用Javascript,我如何按状态检查事件并减去它们的时间。例如,这意味着
state1
发生了3次,我想要第一次发生
state1
与时间的时间差
2019-2-3 11:45:02
第三次出现在时间为2019-3-4 11:45:00的状态1中?对于
状态2也一样。

您可以这样做

function calculateTime() {
    var array = [ 'State is:1Time:2019-2-3 11:45:02',  
  'State is:1Time:2019-2-3 12:45:05',  
  'State is:1Time:2019-3-4 11:45:00',  
  'State is:2Time:2019-3-5 11:45:08',  
  'State is:2Time:2019-4-5 11:45:10',  
  'State is:2Time:2019-4-5 11:45:12', ];
  var previousState=0;
  var previousTime = 0;
  for(var i=0;i<array.length;i++)
  {
      var str = array[i];
  str = str.split('Time');
 var str1 = str[0].split(":");
 var str2 = str[1].split(/:{0-1}/);
 var currentState = str1[1];

 var date = new Date(str2[0].substring(1,str2[0].length));
 var currentTime = date.getTime();
 if((previousState != currentState && (i >0 )|| i ==array.length-1)  )
 {
     console.log(currentTime - previousTime);
 }
 previousState = currentState;
 previousTime = currentTime;
 }

}
函数计算时间(){
变量数组=['状态为:1时间:2019-2-3 11:45:02',
“状态为:1时间:2019-2-3 12:45:05”,
“状态为:1时间:2019-3-4 11:45:00”,
“状态为:2时间:2019-3-5 11:45:08”,
“状态为:2时间:2019-4-5 11:45:10”,
'状态为:2时间:2019-4-5 11:45:12',];
var previousState=0;
var previousTime=0;
对于(var i=0;i0)| | i==array.length-1))
{
console.log(currentTime-previousTime);
}
previousState=当前状态;
previousTime=当前时间;
}
}

欢迎来到Stackoverflow。请参阅。并添加您所面临问题的更多详细信息。共享您迄今为止尝试过的相关代码片段。