Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

274
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!