计算Javascript或jQuery的3相似大小的组相似、大小、Javascript、jQuery

2023-09-11 06:32:34 作者:幸冨被綁票。

我们有:

var range = [9,18,3,14,2,6,12,7,11,2,1,4]
var total = 89;
var group_size = total / 3;

作为结果,我需要3组大小相似,但1组和第2组不能大于GROUP_SIZE。

As result I need 3 groups similar sized but group1 and group2 can never be bigger than group_size.

结果为这个例子是

var group1 = 27; // 9,18
var group2 = 25; // 3,14,2,6
var group3 = 37; // 12,7,11,2,1,4

我怎么能在Javascript / jQuery的实现这一目标?

How can I achieve this in Javascript/jQuery?

推荐答案

我认为你需要,如果你想这与JavaScript弹出值。是这样的:

I think you need to pop values with Javascript if you want this. Something like:

var range = [9,18,3,14,2,6,12,7,11,2,1,4]
var total = 89;
var group_size = total / 3;
var values = [0];
var groupnr = 0;
// Reverse the array, because pop will get the last element
range = range.reverse();

// While elements
while( range.length ) {
    // get the last element and remove from array
    var curvalue = range.pop();

    // To large, create a new element
    if( values[groupnr] + curvalue > group_size && groupnr < 2 ) {
         groupnr++;
         values[groupnr] = 0;
    }
    // Increase
    values[groupnr] += curvalue;
}
console.log(values);