Adjust Gear Quantiies
by WizKid81
JavaScript
var gearArray = [{id: 1, name: "Gear 1", quantity: 5},
{id: 2, name: "Gear 2", quantity: 5},
{id: 3, name: "Gear 3", quantity: 5},
{id: 3, name: "Gear 3", quantity: 9},
{id: 4, name: "Gear 4", quantity: 5},
{id: 1, name: "Gear 1", quantity: 3, parentGear: "Gear 7"},
{id: 1, name: "Gear 1", quantity: 3, parentGear: "Gear 8"}];
var inventoryArray = [{id: 1, name: "Gear 1", quantity: 6},
{id: 2, name: "Gear 2", quantity: 2},
{id: 3, name: "Gear 3", quantity: 25},
{id: 4, name: "Gear 4"}];
function adjustQuantities(gearNeeded, inventory) {
for (var gearItem of gearNeeded) {
var itemInInventory = inventory.find(element => element.id === gearItem.id);
//If the item is found in the inventory, use any available inventory to satisfy gear needed
if (itemInInventory !== undefined && itemInInventory.quantity !== undefined) {
var quantityNeeded = gearItem.quantity;
var quantityRemaining = itemInInventory.quantity;
gearItem.quantity = Math.max(quantityNeeded - quantityRemaining, 0);
gearItem.inventoryQuantityUsed = (quantityNeeded - gearItem.quantity);
itemInInventory.quantity = quantityRemaining - (quantityNeeded - gearItem.quantity);
/* itemInInventory.quantity -= gearItem.quantity;
gearItem.quantity = 0; */
}
}
}
adjustQuantities(gearArray, inventoryArray);
console.log(gearArray);
console.log(inventoryArray);