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

113
Vistas
Pase una matriz de objetos a otra función al hacer clic

Solo quiero preguntar cómo pasar una matriz de objetos a otra función. tengo una funcion

 function btnB(weekly) { console.log(weekly); } function btnA() { const array = [{ abc : 123 }, { def : 456 }] div.innerHTML = `<div onclick="btnB(${array[0]});"`; divList.appendChild(div); } btnA();

Y estoy recibiendo un error

 Uncaught SyntaxError: Unexpected identifier
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

No puede sustituir un objeto como ese en un literal de plantilla. Convierte el objeto en una cadena, que devuelve [Object object] .

Use JSON.stringify() para convertirlo en un objeto literal.

 function btnA() { const array = [{ abc : 123 }, { def : 456 }] div.innerHTML = `<div onclick='btnB(${JSON.stringify(array[0])});'`; divList.appendChild(div); }

También debe usar comillas simples alrededor del valor onclick , porque JSON usa comillas dobles alrededor de las claves de objeto.

about 4 years ago · Juan Pablo Isaza Denunciar

0

function btnB(weekly) { console.log(weekly); } function btnA() { const array = [{ abc : 123 }, { def : 456 }]; const div = document.createElement('div'); // delete if useless div.addEventListener('click', () => { btnB(array[0]) }); divList.appendChild(div); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Supongo que el [0] es parte de su intento de resolver esto, pero en función de la pregunta que pide pasar una serie de objetos al controlador de clics, me referiré a eso en su lugar.

Los controladores de eventos en línea están en desuso y son problemáticos de todos modos, pero usarlos en HTML generado por JavaScript completa el círculo de una manera absurda. Sería mucho más fácil y más robusto (y seguro) adjuntar el controlador de clics a través de JavaScript también, de la siguiente manera:

 const array = [{ abc: 123 }, { def: 456 }] div.innerHTML = '<div></div>' // Just the inner div without onclick div.firstElementChild.addEventListener('click', () => btnB(array)) divList.appendChild(div)
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