javascript - 如何在提供迭代次数的同时获取两个数字之间的值范围?

标签 javascript math

如果我提供迭代编号,如何获取从一个数字到第二个数字的相同递增值的值?结果应包括开始值和结束值。

这是硬编码解决方案的示例

var first = 1;
var second = 1.4;
var times = 5;
var result = [1, 1.1, 1.2, 1.3, 1.4]; 

如何使用这些值获得类似的结果?

first = 1;
second = 1.66;
times = 5;
result = [1, ?, ?, ?, 1.66]

或者这个

first = 1;
second = 1.66;
times = 8;
result = [1, ?, ?, ?, ?, ?, ?, 1.66]

这里是Codepen我试过了,有没有用

最佳答案

 result = Array.from({ length: times }, (_, i) => first + (second - first) * i / (times - 1));

您可以创建一个包含 times 元素的数组,然后将每个槽设置为 firstsecond 之间的值。为此,会为所有插槽生成 0 到 1 之间的数字,然后公式执行:

 // example for 2 times
 first + (second - first) * 0 // = first
 first + (second - first) * 1 // = second

关于javascript - 如何在提供迭代次数的同时获取两个数字之间的值范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53289407/

相关文章:

javascript - 谷歌缩放以适合该页面上的所有标记

javascript - 从变量创建的正则表达式在 .replace() 中不起作用

javascript - javascript for循环中的异步函数

Javascript 数学效率舍入

c++ - 给定起点和终点以及距离,计算沿线的点

python - 溢出错误 : math range error

javascript - 如何将 simple_html_dom 与 phantomjs 一起使用

javascript - 在评论之间移动 HTML 代码(包括评论)

algorithm - 寻找包含所有负循环的最小子图

javascript - 小数化成负数?