midudev / aprende-javascript-problemas

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

Problema con ejercicio práctico de arreglos -> métodos #342

Open SirJulianM opened 1 year ago

SirJulianM commented 1 year ago

Este es el problema

En un restaurante se reciben pedidos de comida a domicilio. Vamos a escribir una función procesarPedido que recibe un pedido, que es un array de platos. Lo que debemos hacer es:

El primer elemento lo sacamos del array, ya que es el nombre del cliente. Añadimos al principio del array la cadena de texto "bebida", ya que es una promoción que tenemos. Después añadimos al final del array el nombre del usuario que sacamos antes. Recuerda que debes devolver el array modificado:

Esta es mi solución planteada

function procesarPedido(pedidos) { pedidos = ["a", "bebida"]; let a = pedidos.shift(); pedidos.push(a); return pedidos; }

Sin embargo me pide algo adicional y eso no tiene nada que ver con el problema procesarPedido(['cocacola', 'pizza']) Expected: ["bebida","pizza","cocacola"] Actual: ["bebida","a"]

¿Que pasó ahí? Gracias

ivethhanna commented 1 year ago

A mi me sale "Error en la ejecución del código: procesarPedido is not defined". Lo he hecho en VScode también y me ha salido perfecto sin errores. Mi solución es esta:

function procesarPedido(pedidos) { const array = [ ]

array.unshift("bebida")

array.push(...pedidos)

return array; }

procesarPedido(["a"]); procesarPedido(["pizza", "cocacola"]);

watercubz commented 11 months ago

tienes un error en tu código, este es el código ya hecho y pasado por los test:

function procesarPedido(pedidos) {
  const client = pedidos.shift()

  pedidos.unshift('bebida')
  pedidos.push(client)
  return pedidos
}

recuerda que tienes que devolver el array ya modificado y lo que estas haciendo es que estas guardando los valores en tu arreglo y luego haces la propagación de pedidos lo cual esta mal, porque los test no saben de donde estas sacando los valores, los cuales lo estas mandado a tu arreglo y no directamente desde pedidos.

Que puedes hacer crear una variable y que reciba el valor de pedidos y luego ahí sacas al cliente de la lista y pusheas la bebida, y luego vuelves a añadir al cliente al arreglo sin necesidad de crear un copia y de volverla ni propagarla, y pasas los valores directamente como dice en el mandato.

Recuerda que debes devolver el array modificado: