Hay muchas cartas de ni帽os pidiendo regalos y es muy dif铆cil que podamos hacer inventario de todos ellos. Por eso, hemos decidido crear un programa que nos dibuje una tabla con los regalos que nos piden y sus cantidades.
Para ello nos dan un array de objetos con los nombres de los regalos y sus cantidades. Escribe una funci贸n que reciba este array y devuelva una cadena con la tabla dibujada.
printTable([
{ name: 'Game', quantity: 2 },
{ name: 'Bike', quantity: 1 },
{ name: 'Book', quantity: 3 },
]);
+++++++++++++++++++
| Gift | Quantity |
| ---- | -------- |
| Game | 2 |
| Bike | 1 |
| Book | 3 |
*******************
Otro ejemplo donde se puede ver que la tabla siempre usa s贸lo el espacio justo dependiendo de la longitud de los nombres de los regalos y de las cantidades.
printTable([
{ name: 'PlayStation 5', quantity: 9234782374892 },
{ name: 'Book Learn Web Dev', quantity: 23531 },
]);
++++++++++++++++++++++++++++++++++++++
| Gift | Quantity |
| ------------------ | ------------- |
| PlayStation 5 | 9234782374892 |
| Book Learn Web Dev | 23531 |
**************************************
Como ves, el tama帽o de las celdas depende de la longitud de los nombres de los regalos y de las cantidades, aunque como m铆nimo tendr谩n que ser del espacio de los t铆tulos Gift
y Quantity
respectivamente.
La tabla usa los s铆mbolos: +
para el borde superior, *
para el borde inferior, -
para las l铆neas horizontales y |
para las l铆neas verticales.
- Usa s贸lo el espacio que necesitas para dibujar la tabla.
- Adapta la tabla a la longitud de los nombres de los regalos y de las cantidades o los t铆tulos de las columnas.
- No hace falta que ordenes los resultados.
- La tabla no termina con salto de l铆nea.
Test: return type;
Expected: 'string';
Actual: 'string';
Test: printTable([
{ name: 'PlayStation 5', quantity: 9234782374892 },
{ name: 'Book Learn Web Dev', quantity: 23531 },
]);
Expected: '++++++++++++++++++++++++++++++++++++++\n
| Gift | Quantity |\n
| ------------------ | ------------- |\n
| PlayStation 5 | 9234782374892 |\n
| Book Learn Web Dev | 23531 |\n
**************************************';
Actual: '++++++++++++++++++++++++++++++++++++++\n
| Gift | Quantity |\n
| ------------------ | ------------- |\n
| PlayStation 5 | 9234782374892 |\n
| Book Learn Web Dev | 23531 |\n
**************************************';
Test: printTable([
{ name: 'Game', quantity: 2 },
{ name: 'Bike', quantity: 1 },
{ name: 'Book', quantity: 3 },
]);
Expected: '+++++++++++++++++++\n
| Gift | Quantity |\n
| ---- | -------- |\n
| Game | 2 |\n
| Bike | 1 |\n
| Book | 3 |\n
*******************';
Actual: '+++++++++++++++++++\n
| Gift | Quantity |\n
| ---- | -------- |\n
| Game | 2 |\n
| Bike | 1 |\n
| Book | 3 |\n
*******************';
Test: printTable([{ name: 'Game', quantity: 10000 }]);
Expected: '+++++++++++++++++++\n
| Gift | Quantity |\n
| ---- | -------- |\n
| Game | 10000 |\n
*******************';
Actual: '+++++++++++++++++++\n
| Gift | Quantity |\n
| ---- | -------- |\n
| Game | 10000 |\n
*******************';
Test: printTable([{ name: 'Game', quantity: 1234567890 }]);
Expected: '+++++++++++++++++++++\n
| Gift | Quantity |\n
| ---- | ---------- |\n
| Game | 1234567890 |\n
*********************';
Actual: '+++++++++++++++++++++\n
| Gift | Quantity |\n
| ---- | ---------- |\n
| Game | 1234567890 |\n
*********************';
Test: printTable([
{ name: 'Toy', quantity: 12 },
{ name: 'Mic', quantity: 123 },
]);
Expected: '+++++++++++++++++++\n
| Gift | Quantity |\n
| ---- | -------- |\n
| Toy | 12 |\n
| Mic | 123 |\n
*******************';
Actual: '+++++++++++++++++++\n
| Gift | Quantity |\n
| ---- | -------- |\n
| Toy | 12 |\n
| Mic | 123 |\n
*******************';