Javascript 基于最大值和长度对数组进行分组

Javascript 基于最大值和长度对数组进行分组,javascript,arrays,underscore.js,lodash,Javascript,Arrays,Underscore.js,Lodash,很难将此阵列分组。任何建议 例如,我有一个数组var a=[10100,20,50,20,50,70,120] 我的最大值为150,最小长度为3,即每个子数组的最大总和为150,最大长度为3 有没有这样的建议[[10100,20],[50,20,50],[70],[120] 提前感谢在这里,groupArray函数将迭代您的输入,并根据提供的最大长度和最大总和构建组 函数组数组(输入、最大和、最大值){ 常数res=[[]]; 设mark=0; 设和=0; input.forEach(ele=

很难将此阵列分组。任何建议

例如,我有一个数组
var a=[10100,20,50,20,50,70,120]

我的最大值为
150
,最小长度为
3
,即每个子数组的最大总和为150,最大长度为3

有没有这样的建议[[10100,20],[50,20,50],[70],[120]


提前感谢

在这里,groupArray函数将迭代您的输入,并根据提供的最大长度和最大总和构建组

函数组数组(输入、最大和、最大值){
常数res=[[]];
设mark=0;
设和=0;
input.forEach(ele=>{
//如果当前组已达到maxLenght或maxSum
//然后创建一个新组
if(res[mark].长度>(maxLen-1)
||(总和+元素)>最大总和){
res.push([ele]);
mark++;
sum=ele;
}
//否则将添加到当前grop中
否则{
res[标记]。推送(ele);
sum+=ele;
}
});
返回res;
}
常数测试_1=[10100,20,50,20,50,70,120];
常数检验_2=[10,130,20,50,20,50,70,120];
常数测试_3=[140,110,20,50,20,50,70,120];
log(groupArray(test_1、150、3));
log(groupArray(test_2、150、3));
log(groupArray(test_3,150,3))