我有一个函数,它将通过单击按钮从计时器的当前时间生成数组值。在这种情况下,结果如下:
var data_catch = ["0", "24.871604", "27.1788", "29.69", "29.100", "30.570661"];
然后我需要使用规则"下一个值将减少上一个值"来获取数组值之间的持续时间,这导致我使用这种方式:
var data_duration = [];
for (var i = 1; i < data_catch.length; i++) {
data_duration.push(data_catch[i]-data_catch[i-1]);
}
console.log(data_duration);
data_duration
的值不应为负值,因为计时器始终在进行,而当前时间的值始终大于以前的当前时间。但在这种情况下,data_duration的结果是:
data_duration = [
24.871604,
2.3071959999999976,
2.5112000000000023,
-0.5899999999999999,
1.4706609999999998
];
由于这种减少29.100 - 29.69
,结果有一个减值 为什么会发生这种情况以及如何解决此问题?请帮助我..
您可以使用Math.abs获取绝对值。同样在数学上29.69
大于 29.100
var data_catch = ["0", "24.871604", "27.1788", "29.69", "29.100", "30.570661"];
var data_duration = [];
for (var i = 1; i < data_catch.length; i++) {
data_duration.push(Math.abs(data_catch[i] - data_catch[i - 1]));
}
console.log(data_duration);