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