在Javascript中创建两个数字之间的整数数组

3

我想创建一个从0.05开始,以2.5结束的数组。我希望在最小值和最大值之间的值按照0.245的增量递增。

var min = 0.05;
var max = 2.5;
var increments = ((max - min) / 100);
var arr = [];

最终输出应该像这样:
[0.05, 0.0745, 0.99, 0.1235, 0.148 ... 2.5]

2
到目前为止,我认为你的方法没有任何问题。 - Tibos
我该如何创建一个循环来生成最终的输出数组? - Bwyss
7个回答

5
使用ES6/ES2015扩展运算符,您可以这样做:
let min = 0.05,
    max = 2.5,
    items = 100,
    increments = ((max - min) / items);

let result = [...Array(items + 1)].map((x, y) => min + increments * y);

如果您需要将数字四舍五入到x个数字,可以按照以下方式进行:

let result = [...Array(items + 1)].map((x, y) => +(min + increments * y).toFixed(4));

Here is an example of the code


绝对漂亮的解决方案!谢谢! - MacKentoch

2

做喜欢的事情

var min = 0.05;
var max = 2.5;
var increments = ((max - min) / 100);
var arr = [];


for(var i=min; i<max;i=i+increments) {
    arr.push(i);
}
arr.push(max);

console.log(arr);

1
尝试这个:

var min = 0.05;
    var max = 2.5;
    var increments = ((max - min) / 100);
    var arr = [];

    for (var i = min; i < max; i +=increments) {
        arr.push(i);
    }
    arr.push(max);

1
基本思路是这样的:
for (var val=min; val<=max; val+=increments) {
  arr.push(val);
}

记住,浮点数运算经常会出现舍入误差。为了修复它们,您可能需要在每个步骤中四舍五入值:
var val = min;
while (val <= max) {
  arr.push(val);

  val += increments;
  val = Math.round(val*1000)/1000; // round with 3 decimals  
}

1
在某些情况下,如果您只是在每次迭代中递增数字,则可能会因舍入误差而得到错误的结果。更正确的方法是:
var min = 0.05;
var max = 2.5;
var increments = (max - min) / 100;
var arr = [];
for (var i = 0; i <= 100; ++i)
    arr.push(min + increments * i);

1
function GetArray(minValue, maxValue, step) {
        var resArray = [];
        if (!isNaN(minValue) || !isNaN(maxValue) || !isNaN(step)) {
            for (var i = minValue; i <= maxValue; i=i+step)
            {
                resArray.push(i);
            }
        }
        return resArray;
    }

0

你可以使用这个函数

function test(){
   var min = 0.05;
   var max = 2.5;
    var increments = (max-min)/100;
    var arr = [];
    for(var min=0.05;min<=max;min=min+increments){
            arr.push(min);
    }
   alert(arr);
   }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接