-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
43 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# Descripción | ||
|
||
Te ha llegado una carta ✉️ con todos los regalos que debes preparar. El tema es que es una cadena de texto y es muy difícil de leer 😱. ¡Menos mal que han puesto cada regalo separado por espacio! (aunque ten cuidado, porque al ser niños, igual han colado más espacios de la cuenta) | ||
|
||
Encima nos hemos dado cuenta que algunas palabras vienen con un _ delante de la palabra, por ejemplo _playstation, que significa que está tachado y no se tiene que contar. | ||
|
||
Transforma el texto a un objeto que contenga el nombre de cada regalo y las veces que aparece. Por ejemplo, si tenemos el texto: | ||
|
||
```js | ||
const carta = 'bici coche balón _playstation bici coche peluche' | ||
``` | ||
|
||
Al ejecutar el método debería devolver lo siguiente: | ||
|
||
```js | ||
const regalos = listGifts(carta) | ||
|
||
console.log(regalos) | ||
/* | ||
{ | ||
bici: 2, | ||
coche: 2, | ||
balón: 1, | ||
peluche: 1 | ||
} | ||
*/ | ||
``` | ||
|
||
Ten en cuenta que los tests pueden ser más exhaustivos... 😝 ¡Cuidado con contar espacios vacíos! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
const spaces = /\s+/; | ||
|
||
export default function listGifts(letter) { | ||
const gifts = letter | ||
.split(spaces) | ||
.map((gift) => gift.trim()) | ||
.filter((gift) => gift !== '' && !gift.startsWith('_')); | ||
const countGifts = {}; | ||
gifts.forEach((gift) => { | ||
countGifts[gift] ??= 0; | ||
countGifts[gift] += 1; | ||
}); | ||
return countGifts; | ||
} |