No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Aprende Ingl茅s, Programaci贸n, AI, Ciberseguridad y m谩s a precio especial.

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

1 D铆as
10 Hrs
45 Min
46 Seg
Curso B谩sico de JavaScript

Curso B谩sico de JavaScript

Juan David Castro Gallego

Juan David Castro Gallego

Playground: rescata al estudiante

21/29

Aportes 481

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 鈥渄eathCount鈥, 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 = [鈥淣ico鈥, 鈥淶ule鈥, 鈥渄eylyn鈥, 鈥渂eatriz鈥漖;
var deathCount = 2;
var nuevo = 鈥渆ilyn鈥;
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;
}

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 鈥渃uando鈥 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 鈥渄e atr谩s para delante鈥 significaba 鈥渄esde 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 :

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");
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; }}
Yo utilice el for `export function solution(estudiantes, deathCount, nuevo) {聽 if (deathCount > 0) {聽 聽 for (var i = 0; i < deathCount; i++) {聽 聽 聽 estudiantes.pop();聽 聽 }聽 聽 estudiantes.push(nuevo);聽 聽 return estudiantes;聽 }聽 else if (deathCount === 0) {聽 聽 estudiantes.push(nuevo);聽 聽 return estudiantes;聽 }}` `solution(["Nico", "Zule"], 0, "Santi");solution(["Juan", "Juanita", "Daniela"], 1, "Julian");solution(["Nath", "Luisa", "Noru"], 2, "Cami");`

mi solucion, un poco mas larga pero paso todos los test

```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 = 1; i <= deathCount; i++) { estudiantes.pop(); } estudiantes.push(nuevo); return estudiantes; } } ```

Comparto mi aporte de reto solicitado :

export function solution(estudiantes, deathCount, nuevo) {
  // Tu c贸digo aqu铆 馃憟
  if (deathCount === 0) {
    estudiantes.push(nuevo);
    return estudiantes;
  } else {
    estudiantes.splice(estudiantes.length - deathCount, deathCount);
    estudiantes.push(nuevo);
    return estudiantes;
  }
```js export function solution(estudiantes, deathCount, nuevo) { if (deathCount === 0) { estudiantes.push(nuevo); } else { estudiantes.splice(-deathCount); estudiantes.push(nuevo) } return estudiantes; // Tu c贸digo aqu铆 馃憟 } ```export function solution(estudiantes, deathCount, nuevo) { 聽 if (deathCount === 0) {聽 聽 estudiantes.push(nuevo);聽 聽 聽 聽 聽 } else {聽 聽 estudiantes.splice(-deathCount);聽 聽 estudiantes.push(nuevo)聽 } 聽 return estudiantes; 聽 // Tu c贸digo aqu铆 馃憟}
undefined