midudev / aprende-javascript-problemas

Repositorio para indicar problemas en la plataforma de Aprende JavaScript
https://aprendejavascript.dev
122 stars 4 forks source link

Problema al validar ejercicio practico de Métodos y propiedades de Array #263

Closed oscar-del closed 1 year ago

oscar-del commented 1 year ago

Al validar el ejercicio me solicita que retorne ["bebida","pizza","cocacola"] pero segun el ejercicio debe retornar ["bebida","a"]

Captura de pantalla 2023-05-19 a la(s) 2 32 20 p m
martinvidela commented 1 year ago

me volvi loco pense que lo estaba haciendo mal!

upsidecodes commented 1 year ago

La verdad no sé si es realmente un bug. Yo lo resolví así y me funcionó (debe ser por mi experiencia en la universidad con C++):

function procesarPedido(pedidos) { let newPedidos = pedidos; let auxiliar = pedidos[0] //Me guardo el nombre de usuario para usarlo después

newPedidos.shift(); newPedidos.unshift("bebida"); newPedidos.push(auxiliar);

return newPedidos; }

upsidecodes commented 1 year ago

Comento un poco más. En tu propuesta, Oscar, vos recibís como argumento un array. En el push vos le mandás "a", pero la verdad vos no deberías saber cuál es el nombre del cliente. Puede ser "a" u otra cosa. Por eso el primer test te da bien, porque espera "a", pero en el segundo test te da mal porque espera que diga "cocacola" y no "a". Por la consigna del ejercicio, la posición 0 del array es el nombre del cliente, y lo que podés hacer es declarar una variable auxiliar y almacenar en esa variable la posición 0 del array. De esta manera, cuando usás el método push para poner en el final del array el nombre de cliente, directamente le mandás la variable donde almacenaste la posición 0 del array. Eso fue lo que hice en el código que puse arriba. Esto no es un bug, el problema lo tuviste vos porque le mandaste un string y no una variable de referencia que le permita recibir lo que sea que tenga el array en la posición 0.

martinvidela commented 1 year ago

Comento un poco más. En tu propuesta, Oscar, vos recibís como argumento un array. En el push vos le mandás "a", pero la verdad vos no deberías saber cuál es el nombre del cliente. Puede ser "a" u otra cosa. Por eso el primer test te da bien, porque espera "a", pero en el segundo test te da mal porque espera que diga "cocacola" y no "a". Por la consigna del ejercicio, la posición 0 del array es el nombre del cliente, y lo que podés hacer es declarar una variable auxiliar y almacenar en esa variable la posición 0 del array. De esta manera, cuando usás el método push para poner en el final del array el nombre de cliente, directamente le mandás la variable donde almacenaste la posición 0 del array. Eso fue lo que hice en el código que puse arriba. Esto no es un bug, el problema lo tuviste vos porque le mandaste un string y no una variable de referencia que le permita recibir lo que sea que tenga el array en la posición 0.

GRACIAS por la explicacion!

oscar-del commented 1 year ago

Muchas gracias por la explicación :)

Oscar2210 commented 1 year ago

Alguien mas tiene problemas con la pagina??

marcelopresno commented 1 year ago

hola, estoy trabado en este ejercicio. lo pensé de esta forma pero no me da, function procesarPedido(pedidos) { const cliente = pedidos.shift() pedidos.unshift("bebida") pedidos.push(cliente) }

ghost commented 2 months ago

Encontré esta solución de @mondev83 function procesarPedido(pedidos) { // tu código aquí const nomCliente = pedidos.shift(); // Quita el nombre de cliente del array pedidos y lo almacena en la constante nomCliente.

pedidos.unshift('bebida') // Añadimos bebida como primer elemento del array pedidos pedidos.push(nomCliente); // Añadimos al final del array el nombre del cliente que esta almacenada la variable en nomCliente.

return pedidos; // Retornamos el array pedidos ya modificado. }