我们有:
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);