2016-12-06 90 views
0

的。如果我有这样的数组:紧凑型系列数据

[ 0.8, 2, 3.33, 60, 98.6 ] 

什么样的功能(在JavaScript)我可以写,使价值紧密联系起来,但其规模?所以最小的缬沙坦仍然是最小的,最大的仍然是最大的,他们会更接近?

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

+2

更接近什么?到最小值,最大值还是平均值? – gyre

+0

我想基本上只是让它的范围较小,但他们仍然在某种程度上相关的其他 – georgej

+1

请添加想得到的结果。 –

回答

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 ] 

基本上,这个代码计算您的数组的平均值,然后将每个值映射,以便它是该平均距离的一半。

+0

我很抱歉,我想我不是只看到减少范围 - 我已经添加更多信息给我的问题,以进一步阐明它 – georgej

+0

作品,谢谢! – georgej