EJERCICIO 16 · Reto

Alterna una tarea sin mutarla

Implementa alternar(tarea), que devuelva un objeto nuevo con hecha invertido, sin modificar el original.

DOM y estado Reto

Tu misión

Implementa alternar(tarea), que devuelva un objeto nuevo con hecha invertido, sin modificar el original.

Define la función alternar en el editor. El corrector llamará a tu función con distintas entradas y comprobará el valor devuelto. No basta con imprimir un resultado fijo.

Repasa si lo necesitas: Devuelve un valor con return · Agrupa datos de algo con un objeto · Extrae una propiedad con desestructuración

{ ...tarea } crea una copia superficial de sus propiedades. !tarea.hecha invierte el booleano. Cambia el estado de la copia y conserva el objeto recibido.

Ejemplos de entrada y resultado
LlamadaDebe devolver
alternar({"id":1,"hecha":false}){"id":1,"hecha":true}
alternar({"id":2,"hecha":true,"texto":"Leer"}){"id":2,"hecha":false,"texto":"Leer"}

Pulsa Comprobar solución para probar también otras entradas. Puedes usar cualquier implementación que cumpla la consigna.

JAVASCRIPT Practica aquí
Consola
Lista para ejecutar.
Listo

¿Necesitas una pista?

Pista 1

Devuelve un objeto nuevo.

Pista 2

Conserva las propiedades del original.

Pista 3

Usa { ...tarea, hecha: !tarea.hecha }.

Ver solución explicada

El spread conserva el resto de campos; ! invierte el booleano.

function alternar(tarea) {
  return { ...tarea, hecha: !tarea.hecha };
}

Esta es una solución posible. Otras implementaciones que produzcan el mismo comportamiento también son válidas.

Para ir un poco más lejos

Actualiza una tarea de una lista a partir de su id.