比如将一组在1到100之间的数字数组,等比例缩小到1到10之间。代码如下:
console.log("将1-100数等比例缩小至1-10");
const begin=1, end=10;
const max=100;//Math.max.apply(null, 数组);
let arr=[];
for(let i=1;i<=max;i++){
arr.push((i-1)/(max-1)*(end-1)+1);
}
console.log(arr);
核心逻辑:
(i-1)/(max-1)*(end-1)+1
比如,在某个项目功能中,使用echarts的散点图,需要根据点的数值大小改变点的大小显示,同时又不能太大。echarts的散点图的圆圈默认大小是10,我们可以设定下范围,规定圆圈无论数值大小,都必须在15到25之间,这样不会影响图表显示,也能体现差别。那么因为统计数据的不可控,最小可能是0,最大可能是几万之类的一组数据返回回来,此时便需要略作改动,取出返回数据数组中的最大值和最小值,然后套用上面的逻辑代码,即可将返回数组压缩到指定的范围内。