javascript - 查找特定时间内两个值之间的值

标签 javascript arrays math range

假设我有两个值: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;

我怎样才能实现这个目标?

最佳答案

计算增量(数组中每个项目之间的增量),然后您可以通过将每个 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);

关于javascript - 查找特定时间内两个值之间的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51034322/

相关文章:

Javascript - 一条语句中可以有 3 个或更多 '===' 吗?

c - 创建数组 "normally"和使用 malloc 之间的区别

python - Numpy.allclose - 根据二进制值的相似百分比确定容差

c# - 如何创建不同类型的数组

matlab - 如何编写没有循环的程序

javascript - 如何使用 jQuery/JavaScript 从下拉列表中删除所有选项

javascript - 使用 d3 在移动设备上缩放触摸

javascript - 涉及 jQuery 的鼓机排序

c++ - 高斯消元的逻辑错误

c - 64 位数学运算,不会丢失任何数据或精度