Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

273
Vistas
¿Cómo puedo eliminar, con el evento Onclick, los objetos insertados en una matriz?

Con fines de aprendizaje, estoy creando una aplicación Todo en JavaScript. Tengo una función que toma el valor de entrada (Tarea) y lo empuja a una matriz de objetos.

Quiero poder eliminar la tarea del objeto de la matriz listOfTask cuando se hace clic en el botón Eliminar y quiero cambiar la propiedad completada de la tarea a verdadera cuando se hace clic en el botón completado. Mi problema es que el usuario puede hacer clic aleatoriamente en cualquier objeto de la matriz. Por lo tanto, no puedo vincular el clic del evento al objeto que quiero manipular usando index. Cualquier idea sobre cómo lograr esto será muy apreciada. Por cierto, esta es la primera vez que publico una pregunta, así que avíseme si mi pregunta necesita mejorar o aclararse.

 let listofTask=[]; function addTask(){ let taskAdded= document.getElementById('input1').value; let task=new Object; task.task=taskAdded; task.completed=false; listOfTask.push(task); appendTask(listOfTask); }

Entonces, la función appendTask() crea dos botones por cada tarea y los imprime en el HTML

 function appendTask(array){ if(array.length>0){ let div=document.getElementById('show-tasks'); let ul= document.createElement('ul'); let completedButton= document.createElement('input'); completedButton.value= 'Completed'; completedButton.type='button'; completedButton.onclick=function completedTask(){ this.parentNode.classList.add("mark-completed"); } let deleteButton= document.createElement('input'); deleteButton.value='Delete'; deleteButton.type='button'; deleteButton.onclick= function deleteTask(){ this.parentNode.remove(); } ul.innerHTML=ul.innerHTML+`<li>${array[array.length-1].task}</li> `; ul.appendChild(completedButton); ul.appendChild(deleteButton); div.appendChild(ul) } }

En este punto, puedo marcar con éxito una tarea como completada y eliminarla del HTML, pero también quiero poder manipular los objetos dentro de la matriz. ¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

¡Siempre me alegra ver que los nuevos desarrolladores se lanzan directamente!
Una forma de lograr el objetivo deseado es otorgar a cada Object una id de propiedad que lo identifique de manera única. Luego, al hacer clic en el botón delete , puede usar la función Array findIndex para encontrar el elemento que desea eliminar.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda