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

111
Vistas
finding all matches and returning values from array object
var sel = document.querySelectorAll('ul li a')
sel[0] == // ELEMENT WITH div.bottom ul li a.box
sel[1] == // ELEMENT WITH div.head ul li a.box

var list = [
    {css: 'a span', val:'1st'},
    {css: 'div.bottom ul a', val:'2nd'},
    {css: 'div.head li > a.box', val:'3rd'},
    {css: 'div.head li a', val:'4th'}
]

//desired result 
"sel[0] matches 2nd"
"sel[1] matches 3rd,4th"

I'm trying to find all css selectorAll matches from a list. I know I can use nested for loop and loop through both selectors and list in this way

for (var i = 0; i < list.length; i++) {
    if (sel[0].matches(list[i].css)) {
      console.log(list[i].val);
    }
  }

but trying to find better solution without using nested for loop. How can I improve this code?

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

0

Use the filter() method to get all matching elements of an array.

sel.forEach((el, i) => {
    let matches = list.filter(item => el.matches(item.css));
    if (matches.length > 0) {
        console.log(`sel[${i}] matches ${matches.map(item => item.val).join(',')}`);
    }
}
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