javascript - 数据范围紧凑

标签 javascript statistics curve

如果我有这个数组:

[ 0.8, 2, 3.33, 60, 98.6 ]

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

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

最佳答案

看起来您正试图使每个值更接近平均值。 使用 Array#map 的组合和 Array#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 ]

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

关于javascript - 数据范围紧凑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41003426/

相关文章:

javascript - 禁用/隐藏第一张/最后一张幻灯片上的幻灯片箭头

javascript - 如何向 Raphael.js 对象添加阴影?

excel - 在Excel中计算矛兵排名统计的p值(使用或不使用vb​​a)

python - 有计算利萨如图形面积的算法吗?

javascript - SO是如何动态获取它的Tag的呢?

sql - 初学者SQL问题: arithmetic with multiple COUNT(*) results

来自 data.frame 每一列的随机样本

MATLAB 多条曲线之间的着色区域

Javascript物理引擎和模拟无限曲线

javascript - AngularJS + IE 11 + Polymer = ng-model 不更新