我有一个对象数组:
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}]];
我很感激你的帮助。