紧凑的数据范围

时间:2016-12-06 19:36:39

标签: javascript statistics curve

如果我有这个数组:

[ 0.8, 2, 3.33, 60, 98.6 ]

我可以编写什么样的函数(在JavaScript中)以使值更接近,但是在一定范围内?因此,最小的val仍然是最小的,最大的仍然是最大的,它们只是更接近?

基本上每个vals都是图表上气泡的半径,我几乎看不到那些小的..我想让小的那些更大,而大的那些也按比例变小。

1 个答案:

答案 0 :(得分:1)

看起来你正试图让每个价值接近平均水平。 像这样使用Array#mapArray#reduce的组合:

var array = [ 0.8, 2, 3.33, 60, 98.6 ]
var average = array.reduce(function (a, b) {
    return a + b
}) / array.length
var result = array.map(function (x) {
    return (x - average) / 2 + average
}) //=> [16.873, 17.473, 18.138, 46.473, 65.773 ]

基本上,此代码计算数组的平均值,然后映射每个值,使其距离平均值的一半。