Entiendo que el método shift es para quitar el primer elemento del array estudiantes y dárselo a estudiante, lo que no entiendo es por qu...

Pregunta de la clase:
Loops: While
David Marín Pineño

David Marín Pineño

Pregunta
studenthace 5 años

Entiendo que el método shift es para quitar el primer elemento del array estudiantes y dárselo a estudiante, lo que no entiendo es por qué estudiantes pierde un elemento, es decir, cuando ponemos estudiantes.shift(), es para modificar el valor de estudiante, pero en ningún momento guardamos en el valor estudiantes ese cambio, por lo tanto nunca debería valer menos de 4 porque nunca pierde ese valor, por lo que este loop debería ser infinito porque 4 siempre sería mayor que 0, entiendo que me estoy equivocando en algo, pero no se en qué, alguien sabría explicarme mi error?

5 respuestas
para escribir tu comentario
    Daniel Ruiz

    Daniel Ruiz

    studenthace 5 años

    ¿no se deberia borrar "maria" desde el primer ciclo?

    Joel Dominguez Merino

    Joel Dominguez Merino

    studenthace 5 años

    También tenia la misma duda. Entiendo lo que hacia pero no del todo el que pasaba con el array. Muchas Gracias a todos por sus respuestas.

    Denisse Rivas

    Denisse Rivas

    studenthace 5 años

    En el momento que llamas a la variable "estudiante" se lleva a cabo el shift sobre el array "estudiantes". "estudiantes.shift()" retorna el valor del elemento que se elimina de la primera posicion Y TAMBIEN modifica el array "estudiantes"

    shift.PNG

    Héctor José Morales Hernández

    Héctor José Morales Hernández

    studenthace 5 años

    david, estudiantes, pierde un elemento por que shift(), elimina el primer elemento..al momento que el aplica el shift() en el while, el estudiantes.shift() elimina el elemento, guarda en estudiante, muestra en el console.log, y repite el while, ahora en estudiantes.lenght se encuentra, solo 3 elementos del array.. alli es donde guarda los elementos de estudiantes y repite el ciclo nuevamente y para la otra vuelta, vale 2 y asi... espero a ver resuelto tu duda.

    Alberto Perdomo

    Alberto Perdomo

    studenthace 5 años

    David existen metodos que modifican directamente la variable, como es el caso de shift. Ahora el porque que se guarde en una variable el retorno del metodo altera también la variable original, es por el alcance de estudiantes, este tiene un alcance más global que estudiante, por lo que se ve afectado. Esto puede parecer complicado pero en realidad ahorra bastante codigo.

Curso Básico de JavaScript [Empieza Gratis]

Curso Básico de JavaScript [Empieza Gratis]

Conoce los conceptos clave del lenguaje de programación que se está comiendo al mundo. Aprende qué es una variable, una función, un objeto y dónde se guardan esos valores. Descubre qué es Scope y cómo se utilizan los loops. Obtén las herramientas para saber cómo tomar decisiones y validar acciones. En este curso, darás el primer paso para empezar tu carrera como desarrollador.

Curso Básico de JavaScript [Empieza Gratis]
Curso Básico de JavaScript [Empieza Gratis]

Curso Básico de JavaScript [Empieza Gratis]

Conoce los conceptos clave del lenguaje de programación que se está comiendo al mundo. Aprende qué es una variable, una función, un objeto y dónde se guardan esos valores. Descubre qué es Scope y cómo se utilizan los loops. Obtén las herramientas para saber cómo tomar decisiones y validar acciones. En este curso, darás el primer paso para empezar tu carrera como desarrollador.