No tienes acceso a esta clase

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

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

1D
1H
22M
57S
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 284

Preguntas 13

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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
}

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);

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

Adjunto mi soluci贸n:

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]
}

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;
}

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
    
  }
}

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;
}

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
  }
}

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")

Hola a [email protected], 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;
}

export function solution(estudiantes, deathCount, nuevo) {
  // Tu c贸digo aqu铆 馃憟
  estudiantes.splice(estudiantes.length - deathCount, deathCount, 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 :

export function solution(estudiantes, deathCount, nuevo) {

while (deathCount > 0) {
estudiantes.pop()
deathCount鈥
}
estudiantes.push(nuevo)
return estudiantes
}

mi humilde solucion

lo hice asi porque asi si arroja un array.
si lo hacia con un ciclo me daba los elementos por separado.
pero he visto soluciones mas elegantes. claro!

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

  } else if (deathCount > 0) {

    var reduc = estudiantes.length = estudiantes.length - deathCount
    estudiantes.push(nuevo);
    return estudiantes;

  } else {
    return "intenta otro parametro";
  }
}

export function solution(estudiantes, deathCount, nuevo) {
  // Tu c贸digo aqu铆 馃憟
  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) {
if (!Number(deathCount)) {
// es cero, regresa el array con el nuevo elemento
var estudiantePush = estudiantes.push(nuevo);
return estudiantes;
} else {
// es <> cero, eliminamos el numero de elementos de deathCount y agregamos el nuevo
var i = 0;
for (i = 0; i < deathCount; i++) {
var estudiantePop = estudiantes.pop(estudiantes[deathCount - 1]); // eliminamos el primer elemento
} console.log(se elemina el ${deathCount - 1})
var estudiantePush = estudiantes.push(nuevo);
return estudiantes;
}
}

Hola, as铆 pude resolver el reto, eso si me tom贸 mas de lo que pens茅:

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
  }
}
<export function solution(estudiantes, deathCount, nuevo) {
  // Tu c贸digo aqu铆 馃憟
  for (var i = 1; deathCount >= i; i++) {
    estudiantes.pop()
  }
  estudiantes.push(nuevo)
  return estudiantes
}> 

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

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

Dejo mi peque帽o aporte, tuve algunos inconvenientes, pero si quedo

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

    var nuevoestudiantes = estudiantes.push(nuevo);
    return estudiantes;
  } else {
    var Masestudiantes = estudiantes.push(nuevo);
    return estudiantes;

  }> 

Aqui esta mi c贸digo del reto

export function solution(estudiantes, deathCount, nuevo) {
  var estudiante = estudiantes;

  if (deathCount === 0) {
    estudiante.push(nuevo);
    return(estudiante);
  } else if (deathCount === 1) {
    estudiante.pop();
    estudiante.push(nuevo);
    return(estudiante);
  } else if (deathCount === 2) {
    estudiante.pop();
    estudiante.pop();
    estudiante.push(nuevo);
    return(estudiante);
  }
  else {
    console.log("Error");
  }
}

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

asi me gui么 la imaginacion

export function solution(estudiantes, deathCount, nuevo) {

  var estudiantes = ["Juan", "Juanita", "Daniela"]
  var deathCount = 0



  for (deathCount > 0; Pestudiantes; nuevo)
    var Pestudiantes = estudiantes.shift()

  var nuevo = estudiantes.push("Julian")
}

solution()

He aqu铆 mi soluci贸n

export function solution(estudiantes, deathCount, nuevo) {
// Tu c贸digo aqu铆 馃憟
if (deathCount > 0) {
for (var i = 0; i < deathCount; i++) {
estudiantes.pop();
}
}

estudiantes.push(nuevo);

return estudiantes;
}

Mi aporte:

export function solution(estudiantes, deathCount, nuevo) {
  // Tu c贸digo aqu铆 馃憟
  var len_estudiantes = estudiantes.length;

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

  } else if (deathCount > 0) {
    for (var i = 1; i <= deathCount; i++) {
      estudiantes.pop(estudiantes[len_estudiantes - i]);
    }
    estudiantes.push(nuevo);
    return estudiantes;
  }  
}


    var nuevo = ["daniel"];
    var estudiantes = ["jose","maria","pedro"];
    var deathCount = 0;
    var cantidad = (estudiantes.length);

    console.log (cantidad);

        if (deathCount >0) {
            estudiantes.splice (0,deathCount);
            console.log (estudiantes);
             estudiantes.push(nuevo);
             console.log (estudiantes);
        } 
        else if ( deathCount ===0){ 
            estudiantes.push(nuevo);
            console.log (estudiantes);
        }
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;
  }
}

Me costo un poco entender como hacer que el .pop eliminara la cantidad solicitada, sin embargo haciendo uso de los ciclos, pude realizar el siguiente codigo por mi cuenta.


function solution(estudiantes, deathCount, nuevo) {
/*Realizamos la primer validacion de la entrada de "deathCount"*/
    if (deathCount == 0){
      estudiantes.push(nuevo)
      console.log(estudiantes)
      return estudiantes;

/*al ser mayor utilice un for empezando desde 1 puesto que si es 0 debemos de anadir, asi realizamos el .pop() dentro del ciclo for*/
      
    } else if (deathCount > 0){
      for (let i = 1; i <= deathCount; i++) {
        const item = estudiantes[i];
        estudiantes.pop(item)
      }
/* fuera del ciclo for anadimos a las personas nuevas*/
       estudiantes.push(nuevo)
    }
	return estudiantes;
    console.log(estudiantes)
}

No s茅 que me paso que lo entend铆 a la primera鈥er谩 porque me levante y como tengo la mente en blanco me sali贸 a la primera 馃槤

Aplique un ciclo while de esta manera:

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

otra forma

export function solution(estudiantes, deathCount, nuevo) {
if (deathCount === 0) {
estudiantes.push(nuevo)
return estudiantes
} else if (deathCount === 1) {
estudiantes.pop()
estudiantes.push(nuevo)
return estudiantes
} else if (deathCount === 2) {
estudiantes.pop()
estudiantes.pop()
estudiantes.push(nuevo)
return estudiantes
}
}

otra forma

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

}

trolleando un poco XD, lo hice de diferentes formas dagh xd
export function solution(estudiantes, deathCount, nuevo) {

switch (deathCount) {
case 0:
estudiantes.push(nuevo);
break;
case 1:
estudiantes.pop()
estudiantes.push(nuevo);
break;
case 2:
estudiantes.pop()
estudiantes.pop()
estudiantes.push(nuevo);
break;
}

return estudiantes
}

Aqu铆 mi soluci贸n:

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

Si el valor de 鈥deathCount鈥檈s mayor que cero, usar谩 el m茅todo 鈥.splice鈥 donde pasa como argumento el n煤mero del 鈥deathCount鈥, el cual, al estar negativo, eliminar谩 ese n煤mero de elementos desde el final al principio del array de estudiantes. Por 煤ltimo, agrega los strings de 鈥nuevo鈥.

En mi caso, me tomo un tiempo averiguar la respuesta, pero para evitar confusiones cuando trabajen con for y usen el var i=0, no es inicializar un i como por ejemplo estudiantes[ i ] si antes de eso no se declararon e inicializaron variables de array por que saldr谩 un error, en este caso el for var i= y la expresi贸n restante que lo completa la cual ser谩 la misma de siempre menor que al momento de inicializar el par谩metro dado sin un array el sistema autom谩ticamente har谩 el loop de una vez tan pronto se halla aplicado la expresion solucion junto con los valores asignados por fuera del parentesis funcion solution. solamente ser谩 aplicar la l贸gica de los arrays asignando el orden de lo que haya que remover y a帽adir, por supuesto no olviden el return al final de haber inicializado los parametros de la funcion en cada bloque. Otro dato, para evitar que alguno de las input tome las de las hermanas es mejor para los deathCount es mayor o menor que, en ves de eso es mejor aplicarles un igual y asignar el numero que el input esta generando para cada deathCount segun los tres ejercicios. Con eso tomara cada input en la secuencia del orden arriba hacia abajo con el que le corresponde, esto con el fin de no perderse, pero en fin el orden de lo programado no altera el resultado. Adjunto a continuaci贸n mi resultado ejemplo:

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

} else {
while (deathCount === 2) {
estudiantes.pop();
estudiantes.pop();
estudiantes.push(nuevo);
return estudiantes;
}
}
}
solution([鈥淣ico鈥, 鈥淶ule鈥漖, 0, 鈥淪anti鈥);
solution([鈥淛uan鈥, 鈥淛uanita鈥, 鈥淒aniela鈥漖, 1, 鈥淛ulian鈥);
solution([鈥淣ath鈥, 鈥淟uisa鈥, 鈥淣oru鈥漖, 2, 鈥淐ami鈥);

Aqu铆 mi soluci贸n

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

Esta es mi solucion, al parecer no la acepta la pagina del curso, pero la prove en la consola y funciona, no se a que se deba , si alguien lo sabe acepto retro.

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

Hola comunidad, les muestro mi codigo

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

Lo hice de esta manera:

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

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

Como siempre, dejo abajo mi aporte, esperando les sea de utilidad, recuerden primero remover los estudiantes y despu茅s agregar los nuevos.

export function solution(estudiantes, deathCount, nuevo) {
    // Tu c贸digo aqu铆 馃憟
    //Declarar variables
    var estudiantes = estudiantes;
    var deathCount = deathCount;
    var nuevo = nuevo;

    //Si el par谩metro deathCount es igual a 0, debes retornar un array con los 
    //mismos elementos que ten铆a el array de estudiantes y agregando el elemento 
    //nuevo al final.
    if (deathCount === 0){
        estudiantes.push(nuevo)
        return estudiantes
    }
    //Si el par谩metro deathCount es mayor a 0, debes retornar un array con los mismos elementos 
    //del array estudiantes pero eliminando la cantidad de estudiantes que indica el 
    //n煤mero deathCount y agregando el elemento nuevo al final.
    else {
        while (deathCount > 0){
            estudiantes.pop("") 
            deathCount = deathCount - 1}
        estudiantes.push(nuevo)
        return estudiantes
    }

  }

Dejo mi soluci贸n usando un ciclo do while.

export function solution(estudiantes, deathCount, nuevo) {
  var output = [];
  for (var estudiante of estudiantes) {
    output.push(estudiante);
  }
  if (deathCount > 0) {
    do {
      output.pop();
      deathCount--;
    } while (deathCount >0)
  }
  output.push(nuevo)
  return output;
}
function solution(estudiantes, deathCount, nuevo) {
  if (deathCount === 0) {
    const newArrEstudents = [];
    for (let i = 0; i <= estudiantes.length - 1; i++){
        newArrEstudents.push(estudiantes[i])
    }
    newArrEstudents.push(nuevo);
    return newArrEstudents;
  } 

  if (deathCount > 0) {
    const newArrEstudents = estudiantes
    for (let j = 0; j <= deathCount-1; j++){ 
      
      newArrEstudents.pop()
    }

    newArrEstudents.push(nuevo);
    return newArrEstudents;
  }
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
    
  }
  
}

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

 

Veo que la soluci贸n de otras personas son mas cortas y al pareces mas eficientes, sin embargo en mi l贸gica y como logre entenderlo comparto mi soluci贸n .

export function solution(estudiantes, deathCount, nuevo) {
  // Tu c贸digo aqu铆 馃憟
  if (deathCount === 0) {
    let nuevoEstudiante = estudiantes.push(nuevo)
    for (const estudiante of estudiantes) {
      return estudiantes
    }
  } else {
    for (let i = 0; i < deathCount; i++) {
      let borar = estudiantes.pop()
    }
    let nuevoEstudiante = estudiantes.push(nuevo)
    for (const estudiante of estudiantes) {
      return estudiantes
    }
  }
}

Bueno mi soluci贸n fue as铆, no tenia ni idea que tenia que poner un let en el for鈥

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

export function solution(estudiantes, deathCount, nuevo) {
switch (true) {
case (deathCount == 0):
estudiantes.push(nuevo)
break;
case (deathCount != 0):
for (let index = 0; index < deathCount; index++) {
estudiantes.pop()
}
estudiantes.push(nuevo)
break
default:
console.log(鈥淓rror鈥)
break;
}
return estudiantes
}
solution([鈥淣ico鈥, 鈥淶ule鈥漖, 0, 鈥淪anti鈥)
solution([鈥淛uan鈥, 鈥淛uanita鈥, 鈥淒aniela鈥漖, 1, 鈥淛ulian鈥)
solution([鈥淣ath鈥, 鈥淟uisa鈥, 鈥淣oru鈥漖, 2, 鈥淐ami鈥)

Correcto

Este fue mi soluci贸n en base a todo lo que ya pr谩cticamos.

function solution(estudiantes, deathCount, nuevo) {
  while(deathCount >= 0) {
      if(deathCount == 0) {
      estudiantes.push(nuevo)
      return estudiantes
      } else {
          estudiantes.splice(estudiantes.length - deathCount)
          estudiantes.push(nuevo)
          return estudiantes
      }
  }
}

Mi solucion

alerta de spoiler
.
.
.
.

.
.
.


.
.
.
.

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

Resoluci贸n del problema:

Me llevo un rato desarrollar esta soluci贸n.
Aplique if鈥lse ya que son dos preguntas las que hay que responder:
.

  1. Si deathCount es igual a cero ?
  2. Si deathCount es mayor a cero ?

.
Tambi茅n, agregue las preguntas:

  1. Si deathCount es igual o mayor a cero ?

Con esta pregunta vemos que si es negativo o un tipo de dato distinto a number sale un mensaje de alerta.

Para trabajar los datos cree un array para aplicar el manejo del indice.

function solution(estudiantes, deathCount, nuevo) {
  let array = [estudiantes, deathCount, nuevo];

  if (array[1] === 0) {

    array[0].push(nuevo);
    return array[0];
  }

  else if (array[1] > 0) {

    for (let i = 0; i < array[1]; i++) {
      array[0].pop();
    }

    array[0].push(nuevo);
    return array[0];
  }
  else {
    return 'Ingrese un n煤mero igual o mayo a cero en deathCount';
  }
}

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

.
Espero que les sea de ayuda!

Si copian el c贸digo y lo ponen en la consola de la web pueden ver los resultados.
.

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

        for(let i = deathCount; i > 0; i--) {
            estudiantes.pop();
        }

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

Aqu铆 comparto mi soluci贸n, definitivamente se me complico un poco 馃槃.

export function solution(estudiantes, deathCount, nuevo) {
  // Tu c贸digo aqu铆 馃憟
  if (deathCount > 0) {
    for (var i = 0; i < deathCount; i++){
      estudiantes.pop();
    }
    estudiantes.push(nuevo);
    return estudiantes
  } else {
    estudiantes.push(nuevo);
    return estudiantes;
}
}
export function solution(estudiantes, deathCount, nuevo) {
  while (deathCount--) {
    estudiantes.pop();
  }
  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;
}

mi version de la soluci贸n:

  if (deathCount == 0) {

    let newStu = estudiantes.push(nuevo);

    return estudiantes;

  } else {

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

    let newStu = estudiantes.push(nuevo);
    return estudiantes;
  }    
} 

Ejercicio completado

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;
  }
}

export function solution(estudiantes, deathCount, nuevo) {
// Tu c贸digo aqu铆 馃憟
for (var i = 0; i < deathCount; i++ ) {
estudiantes.pop();
}
estudiantes.push(nuevo);
return estudiantes;
}

comparto mi soluci贸n al ejercicio:

Saludos!

Soluci贸n conservando los valores originales.
export function solution(estudiantes, deathCount, nuevo) {
// Tu c贸digo aqu铆 馃憟
if (deathCount == 0) {
var out = estudiantes;
console.log(out);
out.push(nuevo);
console.log(out);
return out;
}
else if (deathCount > 0) {
for (let deadCount = 0; deadCount < deathCount; deadCount++){
var out = estudiantes;
out.pop();
console.log(out);
}
out.push(nuevo);
console.log(out);
return out;
}
}

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

Mi Solucion:

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

Mi soluci贸n pero con splice.

aqui el resultado:

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

Mi aporte!!

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;
  }
}

Definitivamente, hay distintas formas de encararlo. Coincido con la mayor铆a, que el problema est谩 planteado de manera confusa.

Aqu铆 mi soluci贸n:

export function solution(estudiantes, deathCount, nuevo) {
  for (var i = deathCount; i > 0; 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 {
    for (var i = 0; i < deathCount; i++){
      var eliminarAlumno = estudiantes.pop();
    }
    estudiantes.push(nuevo);
  }
  
  return estudiantes
}

Mi soluci贸n

export function solution(estudiantes, deathCount, nuevo) {
  // Tu c贸digo aqu铆 馃憟
  if (deathCount === 0) {
    estudiantes.push(nuevo);
    return estudiantes;
  }
  if (deathCount > 0) {
    for (var i = 0; i < deathCount; i++) {
      estudiantes.pop();
    }
    estudiantes.push(nuevo);
    return estudiantes;
  }
}
function solution(estudiantes, deathCount, nuevo) {
  while (deathCount > 0) {
    estudiantes.pop();
    deathCount--;
  }
  estudiantes.push(nuevo);
  return estudiantes;
}

export function solution(estudiantes, deathCount, nuevo) {
// Tu c贸digo aqu铆 馃憟
for (let i = 0; i < deathCount; i++) {
estudiantes.pop();
}
estudiantes.push(nuevo);
return estudiantes;
}

solution([鈥淣ico鈥, 鈥淶ule鈥漖, 0, 鈥淪anti鈥)

21/30 Playground: rescata al estudiante
En este caso, el ciclo while se encarga de iterar deathCount veces, eliminando el 煤ltimo elemento del array estudiantes en cada iteraci贸n utilizando el m茅todo pop(). Luego, se agrega el nuevo estudiante al final del array utilizando el m茅todo push(). Finalmente, se retorna el array modificado.

Es importante inicializar una variable i en 0 antes de comenzar el ciclo, y aumentar su valor en cada iteraci贸n utilizando i++, para asegurarse de que el ciclo termine despu茅s de la cantidad de iteraciones indicadas en deathCount.

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

Mmm, batall茅 bastante jaja. Se me ocurri贸 trabajar con un while loop, quiz谩s con un for of hubiera sido m谩s f谩cil.

function solution(estudiantes, deathCount, nuevo) {
  if (deathCount === 0) {
    estudiantes.push(nuevo);
    return estudiantes
  } else {
    while (0 < deathCount) {
      estudiantes.pop();
      deathCount--;
    }
    estudiantes.push(nuevo);
  }
  return estudiantes;
}


me costo entender al principio pero con los ejemplos lo entend铆

les comparto mi soluci贸n:

revisando la documentaci贸n de javascript, la funci贸n pop podr铆a servir
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop

pero en un apartado utilizan slice para borrar el 煤ltimo elemento

The pop() method is a mutating method. It changes the length and the content of this. In case you want the value of this to be the same, but return a new array with the last element removed, you can use arr.slice(0, -1) instead.

as铆 que teniendo eso en cuenta as铆 qued贸 mi funci贸n

export function solution(estudiantes, deathCount, nuevo) {
  let result = [...estudiantes]
  if (deathCount != 0) {
    result = result.slice(0, deathCount * -1)
  } 
  result.push(nuevo)
  return result
}

Aqu铆 dejo mi c贸digo comentado

export function solution(estudiantes, deathCount, nuevo) {
  if (deathCount == 0) {  //esto es en caso de que sea igual a 0 
    estudiantes.push(nuevo);//se agrega el elemento nuevo
    return estudiantes; //se imprime
  } else if (deathCount > 0) { // si es mayor a 0 entra a un ciclo for para ver cuantos estudiantes debera eliminar 
    for (deathCount; deathCount > 0; deathCount--){
      estudiantes.pop(); 
    }
    estudiantes.push(nuevo);
    return estudiantes;
    
  }
}

export function solution(estudiantes, deathCount, nuevo) {
  // Tu c贸digo aqu铆 馃憟
  return deathCount === 0 ? [...estudiantes, nuevo]
    : [...estudiantes.filter((estudiante, index) => index < estudiantes.length - deathCount), nuevo];
}

export function solution(estudiantes, deathCount, nuevo) {
  if (deathCount === 0) {
    estudiantes.push(nuevo);
    return estudiantes;
  }
  if (deathCount > 0) {
    for (let 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;
}

Aun no domino los loops asi que hice con if

export function solution(estudiantes, deathCount, nuevo) {
  if (deathCount === 0) {
    var agregar = estudiantes.push(nuevo);
    return (estudiantes);
  } else if (deathCount === 1) {
    var eliminar = estudiantes.pop("Daniela");
    var agregar = estudiantes.push(nuevo);
    return (estudiantes);
  } else if (deathCount === 2) {
    var eliminar1 = estudiantes.pop("Luisa");
    var eliminar1 = estudiantes.pop("Noru");
    var agregar1 = estudiantes.push(nuevo);
    return (estudiantes);
  }
}
undefined