从数组中求和值以获得对之间的最小差异

时间:2015-03-21 19:05:34

标签: javascript arrays

说我有一个这样的数组:

    var a = [
7.774,
7.877,
7.774,
7.868,
7.775,
7.861,
7.790,
7.850,
7.799,
7.848,
7.805,
7.842,
7.813,
7.835,
7.820,
7.833,
7.821,
7.829,
7.824,
7.825

]

现在我想将它们配对成一半大小的数组,其中我将2个数字加在一起。我想尝试将最高数字和最低数字之间的差异尽可能地缩小。

所以现在,我将数组从最小到最大排序。然后我将第一个数字与最后一个数字配对,并继续直到我在中间相遇。

所以,有了那些数字,我最终得到:

var b = [
15.651,
15.642,
15.636,
15.640,
15.647,
15.647,
15.648,
15.653,
15.650,
15.649
]

然后给出了0.017的最大差异。 (15.653 - 15.636)。

这是最好的吗?

这是排序代码(javascript):

a.sort(function(a, b) {
    return a - b;
});
for (var i = 0; i < (a.length / 2); i++) {
    if ((a.length-1) - i > i) {
        b.push(a[i]);
        b.push(a[(a.length-1) - i]);
    }
    else {
        b.push(a[i]);
    }
}

0 个答案:

没有答案