Moh*_*eek 2 javascript arrays function object
我需要创建一个像这样的动态扩展
Range 1 = 0 to 100
Range 2 = 100 to 200
Range 3 = 200 to 300
Range 4 = 300 to 400
Range 5 = 400 to 500
Range 6 = 600 to 700
Range 7 = 700 to 800
Range 8 = 800 to 900
Range 9 = 900 to 1000
Run Code Online (Sandbox Code Playgroud)
这里,范围是1到9,最小值是0,最大值是1000.这些范围,最小值和最大值是动态的.
所以,我需要一个函数来返回比例.
例如:-
function getScales(minRage, maxRange, minValue, maxValue){
var scales={};
..........
............
return scales;
}
//Output:
[
{
range :1
min :0,
max :100
},
{
range :2
min :100,
max :200
},
{
range :3
min :200,
max :300
},
....
....
{
range :9,
min :900,
max :1000
}
]
Run Code Online (Sandbox Code Playgroud)
为了得到上述结果,我需要像这样调用函数getScales(1, 9, 0, 1000).

这就是我的实际要求:如果我打电话getScales(1, 5, 4000, 418500);
看看这个:
function getScales(minRange, maxRange, min, max){
var scales = [], // Prepare some variables
ranges = maxRange+1 - minRange, // Amount of elements to be returned.
range = (max-min)/ranges; // Difference between min and max
for(var i = 0; i < ranges; i++){
scales.push({
range: i+minRange, // Current range number
min: min + range * i,
max: min + range * (i+1)
});
}
return scales;
}
Run Code Online (Sandbox Code Playgroud)
您可以像这样调用函数:
getScales(0, 9, 0, 1000);
Run Code Online (Sandbox Code Playgroud)
输出:
[
{
"range": 0,
"min": 0,
"max": 100
},
{
"range": 1,
"min": 100,
"max": 200
},
.......
{
"range": 8,
"min": 800,
"max": 900
},
{
"range": 9,
"min": 900,
"max": 1000
}
]
Run Code Online (Sandbox Code Playgroud)
要摆脱输出中的浮点错误,可以替换:
min: range * i,
max: range * (i+1)
Run Code Online (Sandbox Code Playgroud)
附:
min: (range * i).toFixed(2),
max: (range * (i+1)).toFixed(2)
Run Code Online (Sandbox Code Playgroud)
替换2小数点后面的所需数字位数.