计算Javascript或jQuery的3相似大小的组 [英] calculating 3 similar sized groups in Javascript or jQuery

查看:91
本文介绍了计算Javascript或jQuery的3相似大小的组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们有:

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);

这篇关于计算Javascript或jQuery的3相似大小的组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆