javascript - 我有最小和最大数量如何生成 n 个数组
问题描述
我有min
数字10.5
和max
数字,29.75
我想n
从这两个范围中生成数组的数量。我正在生成数组,interval
但我该如何计算interval
:
generateArrayMinMax(min, max, interval) {
if (interval === 0 || interval < 0) interval = 1;
let list = [];
for (var i = min; i <= max; i = i + interval) {
list.push(i);
}
return list;
}
let min = 10.05;
let max = 29.75;
let arrayLen = 20;
let result = generateArrayMinMax(10.05, 29.75, 20);
预期结果:
[10.5, 11.513157894736842, 12.526315789473685, 13.539473684210526, 14.552631578947368, 15.56578947368421, 16.57894736842105, 17.592105263157894, 18.605263157894736, 19.61842105263158, 20.63157894736842, 21.64473684210526, 22.657894736842103, 23.671052631578945, 24.684210526315788, 25.69736842105263, 26.710526315789473, 27.723684210526315, 28.736842105263158, 29.75]
我需要计算间隔以实现这一点,有什么方法可以做到这一点。任何帮助将不胜感激谢谢
解决方案
您可以使用增量和所需部分计算间隔。
function generateArrayMinMax(min, max, n) {
let list = [min],
interval = (max - min) / (n - 1);
for (let i = 1; i < n - 1; i++) {
list.push(min + interval * i);
}
list.push(max); // prevent floating point arithmetic errors
return list;
}
console.log(generateArrayMinMax(10.5, 29.75, 5));
推荐阅读
- python - Python Django 视频流控制持续时间
- php - Laravel 5.6 上的 419 Ajax 错误 - 已编辑
- c++ - C++ 为 API 中定义的结构创建超类
- swift - 快速实现完成块
- vxworks - VxWorks 在运行时更改控制台端口
- json - angular 2动态列数据表
- javascript - 从 ReactJS 中的同一元素获取 id
- javascript - AsyncStorage React Native 不工作
- arduino - Arduino 在使用 FastLED 时忽略串行中断
- php - 在 laravel 5.6 中创建层次关系