我在数组中有一个数字列表,例如:
var ArrayValues = [1, -2, 3]
这个大约20-30个值的列表正在图表中使用,因此在绘制图表时,如果这些值彼此不同,则图表会上下移动,而不会与每个值保持一致。所以我想要的是每个数字之间有相同的数量,以便图表显示连续增长的线,而不是在某些点上升和下降的线。
这可以用普通的javascript实现吗?函数可以规范化数组中的值吗?
所以上面的数组应该输出如下:
var ArrayValues = [0.6, 0, 1];
使值之间的距离更加相等。
谢谢!
答案 0 :(得分:2)
要在区间[0,1]中获得标准化值,您可以首先获取最小值和最大值,然后调整每个值,以使用以下值。
结果是一个数值介于0和1之间的数组,它保持相对距离。
var array = [1, -2, 3],
min = Math.min(...array),
max = Math.max(...array),
result = array.map(a => (a - min) / (max - min));
console.log(result);