JavaScript如何计算时间戳数组相邻元素差值及代码错误排查
代码错误点梳理
- 错误1:数组初始化错误
let timeArray = [records]这行代码会把原本就是一维数组的records整体作为新数组的第一个元素,最终得到的timeArray是仅包含1个元素的二维数组,循环i < timeArray.length的条件从一开始就不会触发(i初始值为1,timeArray.length值为1)。 - 错误2:无效的属性访问
records数组存储的都是纯数字类型的时间戳,没有.time属性,代码中所有timeArray[i].time的访问逻辑完全不符合数据结构。 - 错误3:差值计算逻辑错误
你写的timeArray[i].time - timeArray[i].time[i - 1]完全不符合需求,正确逻辑应该是当前位置的时间戳减去前一个位置的时间戳。
修复后可运行代码
const records = [1612271438035, 1612271489789, 1612271498250, 1612271498756, 1612271499731, 1612271507831, 1612271508337, 1612271509048, 1612271511891, 1612271511895, 1612271512084, 1612271519936, 1612271520438, 1612271521713, 1612271525260, 1612271525264, 1612271527431, 1612271544137, 1612271544640, 1612271546389, 1612271551144, 1612271551646, 1612271553157, 1612271553163, 1612271557885, 1612271558028, 1612271558032, 1612271559399, 1612271559402, 1612271564461, 1612271564566, 1612271564570, 1612271564572, 1612271564577, 1612271567860, 1612271567863, 1612271568180, 1612271573603, 1612271573607, 1612271601243, 1612271601355, 1612271603883, 1612271604061, 1612271608817, 1612271608930, 1612271612965, 1612271613999]; function timeInteraction() { const timeArray = records; const newArray = []; for (let i = 1; i < timeArray.length; i++) { const diff = timeArray[i] - timeArray[i-1]; newArray.push(diff); } console.log(newArray); return newArray; } timeInteraction();
内容的提问来源于stack exchange,提问作者kalibear
相关产品推荐
相关产品推荐

