如何查找数组元素的指定组合

时间:2014-01-05 08:53:46

标签: javascript arrays algorithm

我有一个对象数组:

var arr = [{a:1}, {a:2}, {a:3}, {a:3}, {a:2}, {a:6}, {a:7}, {a:8}, {a:4}];

值的总和等于36.我需要在3个小数组上分割这个数组,每个数组上有3个元素。并且主要条件是,所有集合应该具有相同的值的总和(如果不可能的话,则彼此具有最小的偏差的集合)。所以每组的平均值应为36/3 = 12 在输出中我想收到:

var comb = [[{a:1}, {a:2}, {a:3}], [{a:3}, {a:2}, {a:6}], [{a:7}, {a:8}, {a:4}]];

但当然有正确的元素。 而其他主要的东西,那个数组可以来自不同数量的元素(最大尺寸40),并且数组可以分成任意数量的数组。例如:

var arr = [{a:1}, {a:2}, {a:3}, {a:3}, {a:2}, {a:6}, {a:7}, {a:8}, {a:4}, {a:4}];

接着5,我应该收到:

var comb = [[{a:1}, {a:2}], [{a:3}, {a:3}], [{a:2}, {a:6}], [{a:7}, {a:8}], [{a:4}, {a:4}]];

我很感激你的帮助。

0 个答案:

没有答案