JSFiddle - React, Tailwind, and code Playground

by Marcos vini

JavaScript

// Array simulando o banco de dados
const warehouse = [
  { id: 1, item: 'A', quantity: 10 },
  { id: 2, item: 'A', quantity: 20 },
  { id: 3, item: 'B', quantity: 15 },
  { id: 4, item: 'C', quantity: 10 }
];

let request_quantity = 25;

console.log(request_quantity);

const processItems = async () => {
  let remainingQuantity = request_quantity;

  for (let i = 0; i < warehouse.length && remainingQuantity > 0; i++) {
    const item = warehouse[i];

    if (item.quantity <= remainingQuantity) {
      // Remover item do array simulando o banco de dados
      warehouse.splice(i, 1);
      i--;
      remainingQuantity -= item.quantity;
    } else {
      item.quantity -= remainingQuantity;
      remainingQuantity = 0;
    }
  }

  request_quantity -= remainingQuantity;
};

processItems();