首页 > 解决方案 > 在特定时间段内查找两个值之间的值

问题描述

假设我有两个值:600 和 470

我想要做的是指定一组时间,比如说 0 和 100(如果 25fps,则为 4 秒),然后获取每个“帧”的“补间”值。

var base = 600;
var target = 470;
var start = 0;
var end = 100;
var values = [];
for (var i = start; i < end; i++) {
    // not sure where to begin with the math here
    // so i'll just asssign it to i, but obviously it's wrong
    var value = i;
    values.push(value);

}
// Once complete, id expect:
// values[0] === 600;
// values[99] === 470;

我怎样才能做到这一点?

标签: javascriptarraysmathrange

解决方案


计算增量(在数组中的每个项目之间),然后您可以通过将每个映射i到 来一次创建数组base + increment * i

const base = 600;
const target = 470;
const start = 0;
const end = 100;
const increment = (target - base) / (end - start - 1);
const values = Array.from(
  { length: end - start },
  (_, i) => base + increment * i
);
console.log(values[0]);
console.log(values[99]);
console.log(values);


推荐阅读