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.
| Llamada | Debe 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.
¿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.
Actualiza una tarea de una lista a partir de su id.