首页 > 解决方案 > 我有最小和最大数量如何生成 n 个数组

问题描述

我有min数字10.5max数字,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]

我需要计算间隔以实现这一点,有什么方法可以做到这一点。任何帮助将不胜感激谢谢

标签: javascriptnode.jstypescript

解决方案


您可以使用增量和所需部分计算间隔。

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));


推荐阅读