Algorithms: Inventory Update
This commit is contained in:
		
							parent
							
								
									063d89f0d8
								
							
						
					
					
						commit
						ecad95a4e8
					
				
							
								
								
									
										40
									
								
								Algorithms/inventoryUpdate.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								Algorithms/inventoryUpdate.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					// https://www.freecodecamp.org/learn/coding-interview-prep/algorithms/inventory-update
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function updateInventory(arr1, arr2) {
 | 
				
			||||||
 | 
					  const inventory = {};
 | 
				
			||||||
 | 
					  arr1.forEach(([quantity, item]) => {
 | 
				
			||||||
 | 
					    inventory[item] = quantity;
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					  arr2.forEach(([quantity, item]) => {
 | 
				
			||||||
 | 
					    if (inventory[item]) {
 | 
				
			||||||
 | 
					      inventory[item] += quantity;
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      inventory[item] = quantity;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					  const inventoryArr = [];
 | 
				
			||||||
 | 
					  for (const [item, quantity] of Object.entries(inventory)) {
 | 
				
			||||||
 | 
					    inventoryArr.push([quantity, item]);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  inventoryArr.sort(([quantityA, itemA], [quantityB, itemB]) =>
 | 
				
			||||||
 | 
					    itemA > itemB ? 1 : -1
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					  return inventoryArr;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					console.log(
 | 
				
			||||||
 | 
					  updateInventory(
 | 
				
			||||||
 | 
					    [
 | 
				
			||||||
 | 
					      [21, "Bowling Ball"],
 | 
				
			||||||
 | 
					      [2, "Dirty Sock"],
 | 
				
			||||||
 | 
					      [1, "Hair Pin"],
 | 
				
			||||||
 | 
					      [5, "Microphone"],
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    [
 | 
				
			||||||
 | 
					      [2, "Hair Pin"],
 | 
				
			||||||
 | 
					      [3, "Half-Eaten Apple"],
 | 
				
			||||||
 | 
					      [67, "Bowling Ball"],
 | 
				
			||||||
 | 
					      [7, "Toothpaste"],
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user