使javascript数组中的值之间的距离相等

时间:2017-05-17 09:33:10

标签: javascript jquery arrays

我在数组中有一个数字列表,例如:

var ArrayValues = [1, -2, 3]

这个大约20-30个值的列表正在图表中使用,因此在绘制图表时,如果这些值彼此不同,则图表会上下移动,而不会与每个值保持一致。所以我想要的是每个数字之间有相同的数量,以便图表显示连续增长的线,而不是在某些点上升和下降的线。

这可以用普通的javascript实现吗?函数可以规范化数组中的值吗?

所以上面的数组应该输出如下:

var ArrayValues = [0.6, 0, 1];

使值之间的距离更加相等。

谢谢!

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);