1
1
mirror of https://github.com/theoludwig/programming-challenges.git synced 2024-10-29 22:17:23 +01:00

Add "inventory-update" challenge

This commit is contained in:
divlo 2020-07-08 17:17:03 +02:00
parent 565d95079f
commit 8be530c08d
5 changed files with 81 additions and 0 deletions

View File

@ -0,0 +1,11 @@
# inventory-update
Created by [@Divlo](https://github.com/Divlo) at 8 July 2020.
## Instructions :
Compare and update the inventory stored in a 2D array against a second 2D array of a fresh delivery. Update the current existing inventory item quantities (in `array1`). If an item cannot be found, add the new item and quantity into the inventory array. The returned inventory array should be in alphabetical order by item.
## Examples :
See the `input-output.json` file for examples of input/output.

View File

@ -0,0 +1,50 @@
[
{
"input": [
[
{ "quantity": 21, "item": "Bowling Ball" },
{ "quantity": 2, "item": "Dirty Sock" },
{ "quantity": 1, "item": "Hair Pin" },
{ "quantity": 5, "item": "Microphone" }
],
[
{ "quantity": 2, "item": "Hair Pin" },
{ "quantity": 3, "item": "Half-Eaten Apple" },
{ "quantity": 67, "item": "Bowling Ball" },
{ "quantity": 7, "item": "Toothpaste" }
]
],
"output": [
{ "quantity": 88, "item": "Bowling Ball" },
{ "quantity": 2, "item": "Dirty Sock" },
{ "quantity": 3, "item": "Hair Pin" },
{ "quantity": 3, "item": "Half-Eaten Apple" },
{ "quantity": 5, "item": "Microphone" },
{ "quantity": 7, "item": "Toothpaste" }
]
},
{
"input": [
[
{ "quantity": 0, "item": "Bowling Ball" },
{ "quantity": 0, "item": "Dirty Sock" },
{ "quantity": 0, "item": "Hair Pin" },
{ "quantity": 0, "item": "Microphone" }
],
[
{ "quantity": 1, "item": "Hair Pin" },
{ "quantity": 1, "item": "Half-Eaten Apple" },
{ "quantity": 1, "item": "Bowling Ball" },
{ "quantity": 1, "item": "Toothpaste" }
]
],
"output": [
{ "quantity": 1, "item": "Bowling Ball" },
{ "quantity": 0, "item": "Dirty Sock" },
{ "quantity": 1, "item": "Hair Pin" },
{ "quantity": 1, "item": "Half-Eaten Apple" },
{ "quantity": 0, "item": "Microphone" },
{ "quantity": 1, "item": "Toothpaste" }
]
}
]

View File

@ -0,0 +1,4 @@
# javascript-inventory - inventory-update
Programming language : JavaScript
Created by [@Divlo](https://github.com/Divlo) at 8 July 2020.

View File

@ -0,0 +1,16 @@
function solution (array1, array2) {
const result = [...array1]
array2.forEach(delivery2 => {
const foundResultIndex = result.findIndex(
deliveryResult => deliveryResult.item === delivery2.item
)
if (foundResultIndex === -1) return result.push(delivery2)
return (result[foundResultIndex].quantity =
result[foundResultIndex].quantity + delivery2.quantity)
})
return result.sort((a, b) => a.item.localeCompare(b.item))
}
module.exports = solution