Tengo una serie de objetos que se parecen a esto;
value = [{id:1, count:50},{id:1, count:25}]Necesito por debajo de tres senario como a continuación. escenario 1
result1 = [ [ { id: 1, qty: 25 } ], [ { id: 1, qty: 25 } ], [ { id: 2, qty: 25 } ] ]escenario:- 2
result2 = [ [ { id: 1, qty: 50 }, { id: 2, qty: 25 } ] ]escenario:-3
[ [ { id: 1, qty: 50 }, { id: 2, qty: 15 } ], [ { id: 2, qty: 10 }] ]He resuelto el escenario 1 y el escenario 2, sin embargo, tengo problemas de lógica en el escenario 3.
por favor vea a continuación el código JS
let temp = 0; let arr = []; let result = []; let receive_list = [ { id: 1, qty: 50 }, { id: 2, qty: 25 }, ] const packing_weight = 65; receive_list.forEach(item => { let availableQty = item.qty;//50 while (availableQty > 0) { if (availableQty > packing_weight) { arr.push({ id: item.id, qty: packing_weight }); availableQty = availableQty - packing_weight; //25 temp += packing_weight; } else { arr.push({ id: item.id, qty: availableQty }); temp += availableQty; availableQty = 0; } if(temp === packing_weight){ result.push(arr); temp = 0; arr = []; } } }) Necesito el resultado a continuación que obtengo resultado de matriz vacía = [] en lugar del resultado a continuación [ [ { id: 1, qty: 50 }, { id: 2, qty: 15 } ], [ { id: 2, qty: 10 }] ]