No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

13 Días
18 Hrs
24 Min
5 Seg
Curso Básico de JavaScript

Curso Básico de JavaScript

Juan David Castro Gallego

Juan David Castro Gallego

Playground: rescata al estudiante

22/30

Aportes 485

Preguntas 19

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Me llevo mucho rato entenderlo, incluso vi la solucion y no entendi a la primera pero he aqui mi opinion.

el problema es que no entendemos lo que nos esta pidiendo el programa, nos pide que eliminemos la cantidad de estudiantes que indica “deathCount”, no todos los estudiantes.

Les dejo mi solucion:

export function solution(estudiantes, deathCount, nuevo) {
  while (deathCount > 0) {
    estudiantes.pop();
    deathCount--;
  }

  estudiantes.push(nuevo);
  return estudiantes;
}
export function solution(estudiantes, deathCount, nuevo) {
    for (deathCount; deathCount > 0; deathCount--) {
      estudiantes.pop();
    }
    estudiantes.push(nuevo);
    return estudiantes;
  }


Mi solucion mas la explicacion del codigo ya que al principio no podia entender es mejor realizar la solucion por partes ya que es mas facil

export function solution(estudiantes, deathCount, nuevo) {
  while (deathCount > 0) { // creamos un ciclo ya que decaunt no es =0
    estudiantes.pop(); // la funcion .pop elimina el ultimo elemento de un arreglo
  deathCount--; // este codigo sirve para disminuir -1 al deathcount hasta que este en 0 y se cumpla la condicion de arriba(linea 2)
}
estudiantes.push(nuevo); // una vez deathcount es 0 el ciclo while termina , una vez deathcount es = 0 , se ejecuta este codigo , la funcion .push agrega un nuevo elemento al arreglo
return estudiantes; // se retorna el arreglo
}

Adjunto mi solución:

No se entiende la descripción del problema, por favor no nos compliquen mas la existencia… suficiente tengo con mis crisis existenciales

var estudiantes = [“Nico”, “Zule”, “deylyn”, “beatriz”];
var deathCount = 2;
var nuevo = “eilyn”;
export function solution(estudiantes, deathCount, nuevo) {
// Tu código aquí 👈
if (deathCount == 0) {
estudiantes.push(nuevo);
return estudiantes;
} else if (deathCount > 0) {
estudiantes.splice(-deathCount, deathCount);
estudiantes.push(nuevo);
return estudiantes;
}
}

solution(estudiantes, deathCount, nuevo);

que les parece trate de que sea bien legible

export function solution(estudiantes, deathCount, nuevo) {

  if (deathCount === 0) {
    estudiantes.push(nuevo)
    return estudiantes
  } else {
    for (let i = 0; i < deathCount; i++){
      estudiantes.pop()
    }
    estudiantes.push(nuevo)
    return estudiantes
    
  }
}

Comparto mi solución:
export function solution(estudiantes, deathCount, nuevo) {
if (deathCount === 0) {
estudiantes.push(nuevo)
} else if (deathCount > 0) {
while (deathCount) {
estudiantes.pop()
deathCount–
}
estudiantes.push(nuevo)
}
return estudiantes
}

Solución:

export function solution(estudiantes, deathCount, nuevo) {
  if (deathCount === 0)
    return [...estudiantes, nuevo];

  const fin = estudiantes.length - deathCount;
  return [...estudiantes.slice(0, fin), nuevo]
}

Es importante analizar el ejercicio, para entender que hay un paso que siempre se hace que es el push a nuestro array, asi podemos optimizar un poco de codigo, quitando el bloque else if que algunos estan agregando.

Acá dejo mi aporte, el código que me funciono:

export function solution(estudiantes, deathCount, nuevo) {
  if (deathCount == 0) {
    estudiantes.push(nuevo);
  } else {
    for (var i = 0; i < deathCount; i++){
      estudiantes.pop();
    }
    estudiantes.push(nuevo);
  }
  return estudiantes;
}

Para realizar este ejercicio es recomendable utilizar el método slice, el cual permite eliminar uno o más elementos de un array en una sola instrucción.

El método slice regresa una copia del resultado del arreglo después de haberse implementado, es decir, no es un método que afecte de manera directa al propio arreglo, para afectarlo se puede reasignar así mismo (utilizando el mismo nombre de arreglo), o crear una copia del mismo desde otro arreglo, y asignar el valor resultante del método slice al nuevo arreglo.

Si desean obtener más información del método, pueden darle click acá.

La implementación final sería:

export function solution(estudiantes, deathCount, nuevo) {
  if (deathCount > 0) {
    estudiantes = estudiantes.slice(0, estudiantes.length - deathCount);
  }
  estudiantes.push(nuevo);
  return estudiantes;
}

Dejo mi solución, pude ver que había una manera muuhco mas sencilla, pero bueno, me quedo super feliz porque es el primer ejercicios de todos que pude hacer completamente solo sin mirar los comentarios, venia bastante frustrado que las cosas casi ni me salían y leer los comentarios me desmotivaban xd pero le seguí dando y lo logre!! :DD

export function solution(estudiantes, deathCount, nuevo) {
  while (deathCount >= 0) {
    if (deathCount == 0) {
      deathCount++;
      let masEstudiantes = estudiantes.push(nuevo);
      return estudiantes;
    } else if (deathCount == 1) {
      let otroEstudiante = estudiantes.pop("Daniela") && estudiantes.push(nuevo);
      return estudiantes;
    } else if (deathCount == 2) {
      let ultimoEstudiante = estudiantes.pop("Luisa") && estudiantes.pop("Noru") && estudiantes.push(nuevo);
      return estudiantes;
    }
  }
}

solution(["Nico", "Zule"], 0, "Santi")
solution(["Juan", "Juanita", "Daniela"], 1, "Julian")
solution(["Nath", "Luisa", "Noru"], 2, "Cami")

export function solution(estudiantes, deathCount, nuevo) {
  // Tu código aquí 👈
  estudiantes.splice(estudiantes.length - deathCount, deathCount, nuevo);
  return estudiantes;
}

Debería haber una opción para ocultar la columna derecha en los retos, aun sin querer, es difícil no ver las soluciones.

Creao que la version mas practica de resolverlo podria ser la siguiente:

export function solution(estudiantes, deathCount, nuevo) {
  // Tu código aquí 👈
  while (deathCount > 0) {
    estudiantes.pop();
    deathCount--;
  }
  estudiantes.push(nuevo);
  return(estudiantes);
}

Así se puede hacer con if y for:

export function solution(estudiantes, deathCount, nuevo) {
// Tu código aquí 👈
if (deathCount === 0) {
estudiantes.push(nuevo);
} else {
for (var i = 0; i < deathCount; i++) {
estudiantes.pop()
}
estudiantes.push(nuevo);
}
return estudiantes;
}

No puedooooo hacer los ejercicioooooosss

Hola. Aquí encontré otra manera de las que he visto en algunos comentarios. Un poco más larga, pero igual funcionó.

export function solution(estudiantes, deathCount, nuevo) {
  // Tu código aquí 👈
  if (deathCount === 0) {
    estudiantes.push(nuevo);
    return estudiantes;
  } else {
    for (var i = 0; i < deathCount; i++){
      estudiantes.pop();
    }
    estudiantes.push(nuevo);
    return estudiantes;
  }
}

Dejo mi solución

export function solution(estudiantes, deathCount, nuevo) {
  if (deathCount == 0) {
    estudiantes.push(nuevo);
    return estudiantes;
  } else if (deathCount >= 1); {
    for (let i = 1; i <= deathCount; i++) {
      estudiantes.pop();
    }
    estudiantes.push(nuevo);
  }
  return estudiantes;
}

function solution(estudiantes, deathCount, nuevo) {
// Tu código aquí 👈
if (deathCount === 0) {
estudiantes.push(nuevo);
} else if (deathCount > 0) {
while (deathCount) {
estudiantes.pop();
deathCount–;
}
estudiantes.push(nuevo);
}
return estudiantes;
}

Despues de probar y fallar, pude lograrlo , export function solution(estudiantes, deathCount, nuevo) {   for (let i = 0; i < deathCount; i++) {     estudiantes.pop();   }   estudiantes.push(nuevo);   return estudiantes; } solution(\["Nico", "Zule"], 0, "Santi");solution(\["Juan", "Juanita", "Daniela"], 1, "Julian");solution(\["Nath", "Luisa", "Noru"], 2, "Cami");

Estuvo algo complicado entender el sentido del problema, pero después de unos minutos pude hacerlo, en mi caso, use la estructura if - else y un for.
Dejo la solución para quien le sea útil.

<code> export function solution(estudiantes, deathCount, nuevo) {
  if (deathCount == 0) {
    estudiantes.push(nuevo);
  }

  else {
    for (var i = 0; i < deathCount; i++) {
      estudiantes.pop();
    }
    estudiantes.push(nuevo);
  }

  return estudiantes
}

¡Hola, compañeros!

Os comparto mi propuesta de solución usando las herramientas que nos facilita la clase Array. Además, adjunto la documentación oficial al método slice.

export function solution(estudiantes, deathCount, nuevo) {

  estudiantes = estudiantes.slice(0, estudiantes.length - deathCount);
  
  estudiantes.push(nuevo);

  return estudiantes;
}

Aqui mi solucion 😃

export function solution(estudiantes, deathCount, nuevo) {
  if (deathCount===0) {
    estudiantes.push(nuevo);
    return estudiantes;
  } else if (deathCount>0){
    for (var i = 0; i < deathCount; i++) {
      estudiantes.pop();
    }
    estudiantes.push(nuevo);
    return estudiantes;

  }
}

Aqui esta mi solución al Reto:

export function solution(estudiantes, deathCount, nuevo) {
  deathCount === 0 ? estudiantes.push(nuevo) : 		 
  (estudiantes.splice(-deathCount), 
   estudiantes.push(nuevo));
   return estudiantes;
}

Dios les bendiga, sería positivo si explicarán el fin del algoritmo porque al explicar los pasos realmente termina siendo muy confuso, algo que enseñaron sus clases es que primero toca especificar el problema a resolver y qué hará el algoritmo y ahí sí se pasa al código.

Mi solución ❤️:

export function solution(estudiantes, deathCount, nuevo) {
  if (deathCount > 0) {
    for (var i=0; i < deathCount; i++){
      estudiantes.pop();
    }
  }
  estudiantes.push(nuevo);
  return estudiantes
}

También pueden intentarlo con .length, modificando el tamaño del arreglo y luego con el .push agregan el nuevo elemento

export function solution(estudiantes, deathCount, nuevo) {
  if (deathCount == 0) {
    estudiantes.push(nuevo);
    return estudiantes;
  }
  else {
    estudiantes.length =estudiantes.length-deathCount
     estudiantes.push(nuevo);
    return estudiantes;

  }
}

Un poco ambiguo, deberian especificar si se debe sacar el final o del principio:

Mi solución 😃

export function solution(estudiantes, deathCount, nuevo) {
  if (deathCount == 0) {
    estudiantes.push(nuevo)
    return estudiantes
  }
  else if (deathCount > 0) {
    for (let i = 1; i <= deathCount; i++) {
      estudiantes.pop();
    }
    estudiantes.push(nuevo);
    return estudiantes
  }
}

Hola a tod@s, comparto mi solución, al principio habia agregado un if en (deathCount === 0) pero al no ser una condición que pudiera o no cumplirse(siempre se cumple, cambia el “cuando” se cumple), no era necesario. Espero les sirva

export function solution(estudiantes, deathCount, nuevo) {
  while (deathCount > 0) {
    deathCount--;
    estudiantes.pop();
  }
  (deathCount === 0)
    estudiantes.push(nuevo);
    return estudiantes;
  }

Les comparto mi código espero les guste mi solución

export function solution(estudiantes, deathCount, nuevo) {
  if (deathCount == 0) {
    estudiantes.push(nuevo);
    return estudiantes;
  } else if (deathCount > 0) {
      for (var i = 0; i < deathCount; i++){
        estudiantes.pop(deathCount);
      }
    estudiantes.push(nuevo);
    return estudiantes;
  }
}

<code> 

La verdad, me llevó algún tiempo comprenderlo bien, e hice pruebas utilizando algún que otro método, pero al final este es el que me dio mejor resultado:

export function solution(estudiantes, deathCount, nuevo) {
  for (deathCount; deathCount > 0; deathCount--) {
  estudiantes.pop();
  }
  estudiantes.push(nuevo);
  return estudiantes;
}

Me costó un poco, les dejo dos soluciones que encuentre a este reto.

export function solution(estudiantes, deathCount, nuevo) {
  for (deathCount; deathCount > 0; deathCount--) {
    estudiantes.pop()
  }

  estudiantes.push(nuevo);

  return estudiantes
}
export function solution(estudiantes, deathCount, nuevo) {
  while (deathCount > 0) {
    estudiantes.pop()
    deathCount--
  } 

  estudiantes.push(nuevo)
   return estudiantes
}

export function solution(estudiantes, deathCount, nuevo) {
  if (deathCount > 0) {
    for (let i = 0; i < deathCount; i++) {
      estudiantes.pop();
    }
    estudiantes.push(nuevo);
    return estudiantes

  } else {
    estudiantes.push(nuevo);
    return estudiantes
  }
}

Yo pensé de que el término “de atrás para delante” significaba “desde el elemento cero en adelante”. Es decir, en vez de pop, estaba usando shift()

export function solution(estudiantes, deathCount, nuevo) {
  // Tu código aquí 👈
  if (deathCount > 0)
    for (let i = 1; i <= deathCount; i++)
      estudiantes.pop()
  estudiantes.push(nuevo)
  return estudiantes
}

Por confiado me salió al segundo intento…

export function solution(estudiantes, deathCount, nuevo) {
  if (deathCount == 0) {
    estudiantes.push(nuevo);
    return estudiantes;
  } else if (deathCount > 0) {
    while (deathCount > 0) {
      estudiantes.pop();
      deathCount--;
    }
    estudiantes.push(nuevo);
    return estudiantes;
  }
}
export function solution(estudiantes, deathCount, nuevo) {
  // Tu código aquí 👈
  while (deathCount > 0) {
    estudiantes.pop();
    deathCount--;
  }
  estudiantes.push(nuevo);
  return estudiantes;
}

ez

  if (deathCount == 0) {
    estudiantes.push(nuevo);
    return estudiantes;

  } else if (deathCount > 0) {

    for (var i = 0; i < deathCount; i++) {
      estudiantes.pop();
    }

    estudiantes.push(nuevo);
    return estudiantes;

  }

Comparto mi solucion:

export function solution(estudiantes, deathCount, nuevo) {
for (deathCount; deathCount > 0; deathCount–) {
estudiantes.pop();
}
estudiantes.push(nuevo);
return estudiantes;
}

aquí les comparto mi solución :

`Queridos compañeros de Platzi,` `Siempre recuerden que la belleza de la programación radica en su simplicidad. No se compliquen buscando soluciones complejas cuando una solución sencilla puede hacer el trabajo. La elegancia está en el código que es fácil de leer y entender, no en el código que es complicado y enrevesado.` `Mantengan la curiosidad, sigan aprendiendo y nunca dejen de mejorar. Cada línea de código que escriben es un paso más en su viaje de aprendizaje. ¡Sigan adelante, el camino puede ser desafiante, pero la recompensa vale la pena!` ![](https://static.platzi.com/media/user_upload/image-746ca4bc-b14a-41f8-8bc2-b3bf28759eae.jpg)
```js export function solution(estudiantes, deathCount, nuevo) { // Tu código aquí 👈 if (deathCount == 0) { estudiantes.push(nuevo); } else if (deathCount > 0) { for (var i = 0; i < deathCount; ++i) { estudiantes.pop(); } estudiantes.push(nuevo) } return estudiantes; } ```export function solution(estudiantes, deathCount, nuevo) {  // Tu código aquí 👈  if (deathCount == 0) {    estudiantes.push(nuevo);  } else if (deathCount > 0) {    for (var i = 0; i < deathCount; ++i) {      estudiantes.pop();    }    estudiantes.push(nuevo)  }   return estudiantes;}
```js export function solution(estudiantes, deathCount, nuevo) { // Tu código aquí 👈 if (deathCount == 0) { estudiantes.push(nuevo); return estudiantes; } else if (deathCount > 0) { for (var i = 0; i < deathCount; ++i) { estudiantes.pop(); } estudiantes.push(nuevo) return estudiantes; } } ```export function solution(estudiantes, deathCount, nuevo) {  // Tu código aquí 👈  if (deathCount == 0) {    estudiantes.push(nuevo);    return estudiantes;  } else if (deathCount > 0) {    for (var i = 0; i < deathCount; ++i) {      estudiantes.pop();    }    estudiantes.push(nuevo)    return estudiantes;  }}
export function solution(estudiantes, deathCount, nuevo) {  // Tu código aquí 👈  if (deathCount == 0) {    estudiantes.push(nuevo);    return estudiantes;  } else if (deathCount > 0) {    for (var i = 0; i < deathCount; ++i) {      estudiantes.pop();    }    estudiantes.push(nuevo)    return estudiantes;  }}
Hice varias soluciones: Solucion Uno: ```js /* Solucion con splice */ function solution(estudiantes, deathCount, nuevo) { if(deathCount === 0){ estudiantes.push(nuevo) return estudiantes } else { estudiantes.splice(estudiantes.length - deathCount, deathCount) estudiantes.push(nuevo) return estudiantes } } ```function solutionTres(estudiantes, deathCount, nuevo) {      while(deathCount > 0){       estudiantes.pop()       deathCount--   }   estudiantes.push(nuevo);   return estudiantes;}function solutionDos(estudiantes, deathCount, nuevo) {    for (deathCount; deathCount > 0; deathCount--) {      estudiantes.pop();    }    estudiantes.push(nuevo);    return estudiantes;  } Solucion dos: ```js function solutionDos(estudiantes, deathCount, nuevo) { for (deathCount; deathCount > 0; deathCount--) { estudiantes.pop(); } estudiantes.push(nuevo); return estudiantes; } ``` Solucion 3: ```js function solutionTres(estudiantes, deathCount, nuevo) { while(deathCount > 0){ estudiantes.pop() deathCount-- } estudiantes.push(nuevo); return estudiantes; } ```
var **arreglo1** = \["Nico", "Zule"]; var **arreglo2** = \["Juan", "Juanita", "Daniela"]; var **arreglo3** = \["Nath", "Luisa", "Noru"]; function **solution** (estudiantes, deathCount, nuevo) { /\* Switch compara con un === por esa razón los elementos tiene que ser idénticos \*/ switch (true) { case (deathCount == 0): estudiantes.push(nuevo); break; case (deathCount > 0 && deathCount <= estudiantes.length): for (var i=0; i < deathCount; i++) { estudiantes.pop(nuevo); } estudiantes.push(nuevo); break; default: estudiantes.push(nuevo); } return estudiantes; } console.log(**solution**(arreglo1, 0, "Santi")); console.log(**solution**(arreglo2, 1, "Julian")); console.log(**solution**(arreglo3, 2, "Cami"));
```js export function solution(estudiantes, deathCount, nuevo) { // Tu código aquí 👈 var estudiantesCero = []; var estudiantesUnoEliminar = []; var estudiantesUnoAgregar = []; if (deathCount === 0) { estudiantesCero = estudiantes.push(nuevo); return estudiantes; } else if (deathCount > 0) { for (var i = 0; i < deathCount; i++) { estudiantes.splice(estudiantes.length - 1, 1) } var estudiantesUnoAgregar1 = estudiantes.push(nuevo); return estudiantes; } } ```
```js export function solution(estudiantes, deathCount, nuevo) { // Tu código aquí 👈 for (let i = 0; i < deathCount; i++){ estudiantes.pop() } estudiantes.push(nuevo) return estudiantes } ```export function solution(estudiantes, deathCount, nuevo) {  // Tu código aquí 👈  for (let i  of deathCount){     estudiantes.pop()  }   estudiantes.push(nuevo)  return estudiantes}
```js function solution(estudiantes, deathCount, nuevo) { for (i = 0; i < deathCount; i++) { estudiantes.pop(); } estudiantes.push(nuevo); console.log(estudiantes); } solution(); ```
Comparto por aquí mi solución. Se agradece feedback. ![](https://static.platzi.com/media/user_upload/Screenshot%202024-04-08%20102924-f8a4c61f-4733-469d-9742-d774f2aa6306.jpg)
Lo arme basándome en caso por caso, me costo trabajo cuando llegue al 'caso 3' ahí elimine lo que me funciono para el 'caso 2', por lo que me quedo de la siguiente forma: ```js export function solution(estudiantes, deathCount, nuevo) { if (deathCount === 0) { estudiantes.push(nuevo); return estudiantes; } else { while (deathCount > 0) { estudiantes.pop(); deathCount--; } estudiantes.push(nuevo); return estudiantes; } } ``` Ya que me salió, ahora si vi el código de los que ya habían solucionado el ejercicio, me di cuenta que agregue el IF de más.
export function solution(estudiantes, deathCount, nuevo) {  if (deathCount == 0) {    estudiantes.push(nuevo);    return estudiantes;  } else if (deathCount>0) {     for (var i = 0; i < deathCount; i++){      estudiantes.pop();    }    estudiantes.push(nuevo);    return estudiantes;  }}
Sentí que era más fácil usando los IF ```js export function solution(estudiantes, deathCount, nuevo) { if (deathCount == 0) { estudiantes.push(nuevo); } else if (deathCount > 0) { for (let i = 0; i < deathCount; i++) { estudiantes.pop(); } estudiantes.push(nuevo); } return estudiantes; } ```
```js export function solution(estudiantes, deathCount, nuevo) { if (deathCount == 0) { var estu = estudiantes.slice(); estu.push(nuevo); return estu } else if (deathCount > 0) { var estu2 = estudiantes.slice(); for (var i = 0; i < deathCount; i++){ estu2.pop(); } estu2.push(nuevo); return estu2; } } solution(["Nico", "Zule"], 0, "Santi") ```export function solution(estudiantes, deathCount, nuevo) {  if (deathCount == 0) {    var estu = estudiantes.slice();    estu.push(nuevo);    return estu  } else if (deathCount > 0) {    var estu2 = estudiantes.slice();    for (var i = 0; i < deathCount; i++){      estu2.pop();    }    estu2.push(nuevo);    return estu2;  }}solution(\["Nico", "Zule"], 0, "Santi")
Aquí están diferentes formas que hice para resolver este reto: `function solution(estudiantes, deathCount, nuevo) {` ` // Tu código aquí 👈` ` //Forma larga usando if` ` /*if (deathCount > 0) {` ` for (var i = 0; i < deathCount; i++){` ` estudiantes.pop();` ` }` ` }` ` estudiantes.push(nuevo)` ` console.log(estudiantes)/*` ` ` ` //Forma con while` ` /*while(deathCount > 0){` ` estudiantes.pop()` ` deathCount--` ` }` ` estudiantes.push(nuevo)` ` return estudiantes*/` ` //Forma con for` ` /*for (deathCount; deathCount > 0; deathCount--) {` ` estudiantes.pop();` ` }` ` estudiantes.push(nuevo);` ` return estudiantes;*/` `}` `solution(["Nico", "Zule"], 0, "Santi")` `solution(["Juan", "Juanita", "Daniela"], 1, "Julian")` `solution(["Nath", "Luisa", "Noru"], 2, "Cami")`
![](https://static.platzi.com/media/user_upload/image-9d58f7b5-818b-470a-8e3d-95360fda0776.jpg)
```js if (deathCount === 0) { estudiantes.push(nuevo); } else { estudiantes = estudiantes.slice(0, -deathCount); estudiantes.push(nuevo); } return estudiantes; ```otra solución
Comparto mi solución, que por lo que revisé hay soluciones parecidas pero no iguales. ```js export function solution(estudiantes, deathCount, nuevo) { // Tu código aquí 👈 while (deathCount--) { estudiantes.pop() } estudiantes.push(nuevo) return estudiantes } ```Este truco de poner el operador de decremento en la parte donde se evalúa la condición del while lo aprendí al leer un poco el libro de "The C programming language" por si a alguien le interesa. Ahora voy a explicar cómo funciona. Primero hay que saber cómo funciona el operador de decremento, este operador si se lo pone a la derecha de la variable, primero retorna el valor que contiene esa variable y luego resta en uno la variable, aquí un ejemplo: ```js let num = 5 console.log(num--) // 5 (Aquí está el operador de decremento) console.log(num) // 4 (Aquí no está el operador de decremento) ```(Tarea para la casa: ¿Qué pasa si se pone el operador a la izquierda?) Bueno, ahora sabiendo eso, también hay que recordad que el 0 en booleano es false: ```js Boolean(0) // false ```(En este punto ya tienen suficientes pistas para entender el código) Entonces, como el while siempre evalúa un booleano, este si recibe un valor que no sea ni true y false lo va a convertir de manera implícita a true o false. Así que si me pasan en `deathCount` un 0 primero se convierte a booleano el 0 dando false (por lo tanto, no se ejecuta el while) y luego se resta 1 terminando la variable en -1, pero eso ya no importa porque nunca más se va a utilizar esa variable. En caso de que `deathCount` sea diferente de 0 sí se va a ejecutar el while y se va a ir restando la variable en 1 hasta que sea 0 y se rompa el ciclo.
```js export function solution(estudiantes, deathCount, nuevo) { while (deathCount > 0) { estudiantes.pop(); deathCount--; } estudiantes.push(nuevo); return estudiantes; } ```
![]()![](https://static.platzi.com/media/user_upload/image-9411c1af-99f5-4e44-bdbc-c8b42015ffda.jpg) Este fue mi resultado
```js export function solution(estudiantes, deathCount, nuevo) { if (deathCount === 0) { estudiantes.push(nuevo); return estudiantes; } else { while (deathCount > 0) { estudiantes.pop(); deathCount--; } estudiantes.push(nuevo); return estudiantes; } } ```export function solution(estudiantes, deathCount, nuevo) {   if (deathCount === 0) {    estudiantes.push(nuevo);    return estudiantes;  } else {    while (deathCount > 0) {      estudiantes.pop();      deathCount--;    }    estudiantes.push(nuevo);    return estudiantes;  }}
de acuerdo a lo enseñado en los capítulos, esta fue mi solución al problema. ![](https://static.platzi.com/media/user_upload/image-0d0e87ba-59c8-4d9f-aac3-765570878004.jpg)
No entendía por qué en el último ejemplo seguía apareciendo el nombre de Luisa, lo importante que es dar un enter jajaja. Aquí comparto mi código export function solution(estudiantes, deathCount, nuevo) {  if (deathCount === 0) {    estudiantes.push(nuevo);    return estudiantes;  }  while (deathCount > 0) {    estudiantes.pop(deathCount);    deathCount--;  }  estudiantes.push(nuevo);  return estudiantes;}
Lo hice de dos maneras la primera es esta que fue un poco mas extensa y luego al ponerme a ver el codigo me di de cuenta de que estaba siendo redundante en el if elsefunction solution(estudiantes, deathCount, nuevo) {  // Tu código aquí 👈  while (deathCount >= 0) {    if (deathCount == 0) {      estudiantes.push(nuevo);      return estudiantes    } else {      estudiantes.pop()      deathCount--;    }  }}```js function solution(estudiantes, deathCount, nuevo) { // Tu código aquí 👈 while (deathCount >= 0) { if (deathCount == 0) { estudiantes.push(nuevo); return estudiantes } else { estudiantes.pop() deathCount--; } } } ```Asi que lo que hice fue ponerle solo el while, ya que no importa que pase al final cuando llega a 0 siempre se ejecuta un push y se muestra el array ```js function solution(estudiantes, deathCount, nuevo) { // Tu código aquí 👈 while(deathCount > 0){ estudiantes.pop() deathCount-- } estudiantes.push(nuevo); return estudiantes; } ```function solution(estudiantes, deathCount, nuevo) {    // Tu código aquí 👈     while(deathCount > 0){      estudiantes.pop()      deathCount--    }    estudiantes.push(nuevo);    return estudiantes;  }
```js export function solution(estudiantes, deathCount, nuevo) { // Tu código aquí 👈 for (deathCount; deathCount > 0; deathCount--) { estudiantes.pop(); } estudiantes.push(nuevo); return estudiantes; } ```
![](https://static.platzi.com/media/user_upload/image-bef975d5-1d5f-4566-abbd-be8af25862a4.jpg) ===============================================================================================
Hola Les dejo mi solución ```js export function solution(estudiantes, deathCount, nuevo) { // Caso deathCount igual a 0 if (deathCount === 0) { estudiantes.push(nuevo); return estudiantes; } // Caso deathCount mayor a 0 while (deathCount > 0 && estudiantes.length > 0) { estudiantes.pop(); deathCount--; } estudiantes.push(nuevo); return estudiantes; } ```export function solution(estudiantes, deathCount, nuevo) { // Caso deathCount igual a 0 if (deathCount === 0) { estudiantes.push(nuevo); return estudiantes; } // Caso deathCount mayor a 0 while (deathCount > 0 && estudiantes.length > 0) { estudiantes.pop(); deathCount--; } estudiantes.push(nuevo); return estudiantes;}
Comparto mi solución ```js export function solution(estudiantes, deathCount, nuevo) { if (deathCount > 0) { for (var i = 1; i <= deathCount; i++) { estudiantes.pop(); } estudiantes.push(nuevo); return estudiantes } else { estudiantes.push(nuevo) return estudiantes } } ```
```js export function solution(estudiantes, deathCount, nuevo) { while (deathCount === 0) { estudiantes.push(nuevo); return estudiantes; } while (deathCount === 1) { estudiantes.pop(); estudiantes.push(nuevo); return estudiantes; } while (deathCount === 2) { estudiantes.pop(); estudiantes.pop(); estudiantes.push(nuevo); return estudiantes; } } ```
```js function solution(estudiantes, deathCount, nuevo) { for (let i = 0; i < deathCount; i++) { estudiantes.pop(); } estudiantes.push(nuevo); return estudiantes; } ```function solution(estudiantes, deathCount, nuevo) { for (let i = 0; i < deathCount; i++) { estudiantes.pop(); } estudiantes.push(nuevo); return estudiantes;}
```js export function solution(estudiantes, deathCount, nuevo) { for (let i = 0; i < deathCount; i++) { estudiantes.pop(); } if (nuevo) { estudiantes.push(nuevo); } return estudiantes; } ```export function solution(estudiantes, deathCount, nuevo) {  for (let i = 0; i < deathCount; i++) {    estudiantes.pop();  }  if (nuevo) {    estudiantes.push(nuevo);  }  return estudiantes;}
Las instrucciones son algo confusas ya que solo menciona que hay que eliminar la cantidad de alumnos dada por deathCount pero no define desde donde hay que borrar así que pensé en esta solución, pero me la marca como incorrecta, aunque hace lo que se me pide.export function solution(estudiantes, deathCount, nuevo) {   estudiantes.push(nuevo);  for (var i = 0; i < deathCount;i++) {    estudiantes.shift();  }  return estudiantes;}```js export function solution(estudiantes, deathCount, nuevo) { estudiantes.push(nuevo); for (var i = 0; i < deathCount;i++) { estudiantes.shift(); } return estudiantes; } ```
Esta es mi solución: ```js export function solution(estudiantes, deathCount, nuevo) { if (deathCount == 0) { estudiantes.push(nuevo); return estudiantes; } else{ for (var i = 1; i<=deathCount; i++) estudiantes.pop(); estudiantes.push(nuevo); return estudiantes; } } ```export function solution(estudiantes, deathCount, nuevo) { if (deathCount == 0) { estudiantes.push(nuevo); return estudiantes; } else{ for (var i = 1; i<=deathCount; i++) estudiantes.pop(); estudiantes.push(nuevo); return estudiantes; }}

Debe uno tener mucha lógica.

export function solution(estudiantes, deathCount, nuevo) {
  while (deathCount > 0) {
    estudiantes.pop();
    deathCount--;
  }

  estudiantes.push(nuevo);
  return estudiantes;
}
2 formas que encontré: ```js export function solution(estudiantes, deathCount, nuevo) { // Tu código aquí 👈 while (estudiantes.length > 3-deathCount) { estudiantes.pop(); } estudiantes.push (nuevo) return estudiantes; } ``` ```js export function solution(estudiantes, deathCount, nuevo) { // Tu código aquí 👈 for (var i = deathCount; i > 0; i--) { estudiantes.pop(); } estudiantes.push (nuevo) return estudiantes; } ```export function solution(estudiantes, deathCount, nuevo) {  // Tu código aquí 👈  for (var i = deathCount; i > 0; i--) {    estudiantes.pop();  }  estudiantes.push (nuevo)  return estudiantes;}
Si estaba complejo, me demoro bastante la solucion: ![](https://static.platzi.com/media/user_upload/image-6ae6a0d4-4955-4ce8-9290-8e16cec976aa.jpg)![](https://static.platzi.com/media/user_upload/image-6d0cf5d3-2952-4130-b05f-f2fb6e0b27f4.jpg)
La manera en cómo se haría con un ciclo while y uno for: ![](https://static.platzi.com/media/user_upload/image-4dfa8cce-a966-4d37-b5eb-6e395ea82448.jpg)
![](https://static.platzi.com/media/user_upload/image-3ad5da67-393c-4986-a083-a93afa64115b.jpg)
![](https://static.platzi.com/media/user_upload/imagen-97ce1ad8-bdfe-49ee-9cc9-4564145cf728.jpg)
Les comparto mi solución al problema: ```js // Usando For export function solution(estudiantes, deathCount, nuevo) { if (deathCount === 0) { estudiantes.push(nuevo); return estudiantes; } else if (deathCount > 0) { for (deathCount; deathCount > 0; deathCount--) { estudiantes.pop(); } estudiantes.push(nuevo); return estudiantes } } // Usando While export function solution(estudiantes, deathCount, nuevo) { if (deathCount === 0) { estudiantes.push(nuevo); return estudiantes; } else if (deathCount > 0) { while (deathCount > 0) { estudiantes.pop(); deathCount-- } estudiantes.push(nuevo); return estudiantes } } ```
Les dejo mi resolucion! Me complique un poco mas poniendo if```js export function solution(estudiantes, deathCount, nuevo) { // Tu código aquí 👈 if (deathCount == 0) { estudiantes.push(nuevo); return estudiantes; } else if (deathCount > 0) { for (let i = 0; i < deathCount; i++) { estudiantes.pop(); } estudiantes.push(nuevo); return estudiantes; } } ```
Solution rescataAlEstudiante ![]()![](<C:\Users\Efrén\Pictures\Saved Pictures\rescataAlEstudiante.jpg>)
![](https://static.platzi.com/media/user_upload/image-b13649ce-9a9d-4f7e-89ed-49533ec3e83f.jpg) 😆

Quiza me quedo un poco mas largo que el de otros pero me quedo que eso es lo importante jajaja.
Espero les sirva mi ejemplo para entenderle un poco mas…!!!

function solution(estudiantes, deathCount, nuevo) {
    if (deathCount === 0) {
        estudiantes.push(nuevo);
    } else if (deathCount > 0) {
        while(deathCount > 0) {
            estudiantes.pop();
            deathCount--;
        }
        estudiantes.push(nuevo);
    }
    return(estudiantes)
}
realmente no me gustan los enunciados el ejercicio es super facil pero el enunciado esta demasiado mal redactado
comparto mi respuesta ```js function solution(estudiantes, deathCount, nuevo) { if (deathCount) { estudiantes = estudiantes.slice(0, -deathCount); } estudiantes.push(nuevo); return estudiantes; } ```
export function solution(estudiantes, deathCount, nuevo) {  if (deathCount > 0) {    for (var i = 0; i < deathCount; i++){      estudiantes.pop();    }  }  estudiantes.push(nuevo);  return estudiantes; }
![](https://static.platzi.com/media/user_upload/Screenshot%202023-10-30%20162238-c0eed619-0866-4f6b-a14e-87d61a3cf75f.jpg)
Primero lo hice con el shift, pero en el ejemplo entendí que se debía eliminar el último, no el primero xD.export function solution(estudiantes, deathCount, nuevo) {  while (deathCount > 0) {    estudiantes.pop();    deathCount--;  }  estudiantes.push(nuevo);  return(estudiantes);} ```js export function solution(estudiantes, deathCount, nuevo) { while (deathCount > 0) { estudiantes.pop(); deathCount--; } estudiantes.push(nuevo); return(estudiantes); } ```
```js export function solution(estudiantes, deathCount, nuevo) { for (var i = 0; i < deathCount; i++) { estudiantes.pop(); } estudiantes.push(nuevo); return estudiantes; } ```export function solution(estudiantes, deathCount, nuevo) {  for (var i = 0; i < deathCount; i++) {    estudiantes.pop();  }  estudiantes.push(nuevo);  return estudiantes;}
```js Mi codigo con explicacion... if (deathCount === 0) { //Valida si el deathCount es igual a 0, si si lo es estudiantes.push(nuevo); //entonces al arreglo de estudiantes mandale el nuevo estudiante return estudiantes; //Devuelve el arreglo con los valores correspondientes } else if (deathCount > 0) { //Si el deathCount es mayor a 0 for (let i = 0; i < deathCount; i++){ //Haz el ciclo hasta que i sea menor a deathCount estudiantes.pop(); //Por cada vuelta eliminas el ultimo elemento del arreglo hasta que deje de cumplirse la condicion } estudiantes.push(nuevo); //Una vez eliminados los elementos, añademe al nuevo estudiante return estudiantes; //Devuelve el arreglo de estudiantes con los valores correspondientes } ```
Mi aporte con explicacion... if (deathCount === 0) { *//Valida si el deathCount es igual a 0, si si lo es*    estudiantes.push(nuevo); *//entonces al arreglo de estudiantes mandale el nuevo estudiante*     return estudiantes; *//Devuelve el arreglo con los valores correspondientes*  } else if (deathCount > 0) { *//Si el deathCount es mayor a 0*    for (*let* i = 0; i < deathCount; i++){ *//Haz el ciclo hasta que i sea menor a deathCount*      estudiantes.pop(); *//Por cada vuelta eliminas el ultimo elemento del arreglo hasta que deje de cumplirse la condicion*    }    estudiantes.push(nuevo); *//Una vez eliminados los elementos, añademe al nuevo estudiante*     return estudiantes; *//Devuelve el arreglo de estudiantes con los valores correspondientes*  }
```js export function solution(estudiantes, deathCount, nuevo) { var resul = estudiantes if (deathCount > 0) { for (var i = 0; i < deathCount; i++) { resul.pop(); } } resul.push(nuevo); return resul } ```

Solución rara pero funciona.

export function solution(estudiantes, deathCount, nuevo) {
  // Tu código aquí 👈
  while (deathCount >= 0) {
    for (var i = 0; i < deathCount; i++) {
      estudiantes.pop();
    }
  estudiantes.push(nuevo);
  return estudiantes

  }
}

Probablemente no esté bien le no haber usado export function solution(estudiantes, deathCount, nuevo) { if (deathCount === 0) { estudiantes.push(nuevo); return estudiantes; } else { estudiantes.splice(estudiantes.length - deathCount, deathCount, nuevo); return estudiantes; }}`for pero aquí está una interesante respuesta: ` ```js export function solution(estudiantes, deathCount, nuevo) { if (deathCount === 0) { estudiantes.push(nuevo); return estudiantes; } else { estudiantes.splice(estudiantes.length - deathCount, deathCount, nuevo); return estudiantes; } } ```
export function solution(estudiantes, deathCount, nuevo) { // Tu código aquí 👈 if (deathCount === 0) { estudiantes.push(nuevo); return estudiantes; } else { estudiantes.splice(0, deathCount); estudiantes.push(nuevo); return estudiantes; }}
undefined