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

309
Vistas
Eliminación de la duplicación de código: construya un evento basado en if else

Tengo el siguiente código que funciona como se esperaba. ¿Hay alguna forma en que pueda reducir la cantidad de líneas o la funcionalidad para que pueda ser más modular?

Las preocupaciones son que estoy llamando al evento de seguimiento de exponena dos veces. Me preguntaba si hay alguna manera de que pueda construirlo una vez y pasarle parámetros en función de la condición if else. Estoy aprendiendo javascript, así que busco alguna optimización de código.

 window.onload = function () { var categorycollection = JSON.parse(document.querySelector('.pipa').getAttribute('data-globaltargeting')); var isprofessional = (categorycollection['Type'] == 'PatientPlusArticle') ? 'Yes' : 'No'; if (categorycollection['Type'] == 'PatientPlusArticle' || categorycollection['Type'] == 'MedicineLeaflet' || categorycollection['Type'] == 'PatientInformationLeaflet') { exponea.track('page_visit', { "referrer": document.referrer, "path": window.location.pathname, "category name": document.querySelectorAll('.breadcrumb-item')[1].querySelector('span').innerText, "Isprofessional": isprofessional }); } else { exponea.track('page_visit', { "referrer": document.referrer , "path": window.location.pathname }); } }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El operador condicional puede asignar las propiedades adicionales cuando sea necesario; de lo contrario, use el objeto vacío. Combinar el resultado en la llamada a .track . También puede usar .includes en lugar de extraer el Tipo tantas veces.

 const { Type } = JSON.parse(document.querySelector('.pipa').getAttribute('data-globaltargeting')); const additionalObj = ['PatientPlusArticle', 'MedicineLeaflet', 'PatientInformationLeaflet'].includes(Type) ? { "category name": document.querySelectorAll('.breadcrumb-item')[1].querySelector('span').innerText, Isprofessional: Type == 'PatientPlusArticle' ? 'Yes' : 'No' } : {}; exponea.track('page_visit', { referrer: document.referrer, path: window.location.pathname, ...additionalObj });

Sin embargo, los selectores y los índices secundarios tienen un poco de olor a código: no conozco el contexto más amplio, pero esa parte probablemente también merezca una refactorización. De lo contrario, sería muy fácil que un simple cambio en el HTML rompiera todo.

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