最近在做一个项目,需要先做演示版,生成一堆演示用的模拟数据,包括统计数据等很多,所以就需要js生成一些某个区间内的数值,然后网上找了好多js数据缩放的文章,最后在github上看到了d3内插,有兴趣的可以去看看!
d3内插提供了多种插值方法,用于在两个值之间进行混合。值可以是数字,颜色,字符串,数组,甚至是深度嵌套的对象。具体大家可以去d3内插看下,这里不做详细介绍。
我只用到了数据按需求缩小的功能,下面上代码:
Documentvar a = [125451, 524512, 546253];
var x = d3.scaleLinear().domain([12354, 546253]).range([1, 10]);
let b = a.map((item) => {
return parseInt(x(item));
});
console.log(b);
其中scale.js就是d3库
var x = d3.scaleLinear().domain([12354, 546253]).range([1, 10]);
这行代码的domain里放的是你的数据的最大值和最小值,比如我有这样一个数组:
var a=[12352,12,5485,15263,5845,485789]
那么我们可以这么写:
var x = d3.scaleLinear().domain([12, 485789]).range([1, 10]);
运行后结果是:
当然,每次运行结果都是不同的,因为是随机生成的。
更多前端知识请浏览前端园地其它文章^_^!