• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

62
Vistas
Cómo ajustar una matriz con una matriz

Tengo una lista de objetos como este.

 results = [ { id: 1, status : "Active" // Some other fields tags : [{val: 'IGM', color: 'light-success' }, {val: 'Gated Out', color: 'light-primary' }, ] }, // ... ]

ahora quiero filtrar objetos en relación con las etiquetas, la entrada para filtrar la lista también tiene la forma de una matriz usando una entrada de selección múltiple.

me gusta

 [{value: 'Gated Out', label: 'GATED OUT'}, .. ]

Puedo filtrar datos de otros campos pero no las etiquetas porque otros campos están en cadenas y las etiquetas son una matriz.

Pero ahora, ¿cómo puedo modificar esto para que funcione también con la matriz?

Estoy usando ese enfoque;

 const handleTagsFilter = (value) => { let updatedData = [] const dataToFilter = () => { if ( status.length || custom_tags.length ) { return filteredData } else { return results } } setCustomTags(value) if (value.length) { updatedData = dataToFilter().filter((item) => { const startsWith = item.status.toLowerCase().startsWith(value.toLowerCase()) const includes = item.status.toLowerCase().includes(value.toLowerCase()) if (startsWith) { return startsWith } else if (!startsWith && includes) { return includes } else return null }) setFilteredData([...updatedData]) setCustomTags(value) } }

Esa función funciona con cadenas de filtrado como si tuviéramos el campo de estado en Activo que este trabajo, pero no estoy seguro de cómo puedo modificarlo para que funcione también con la matriz.

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

0

Tal vez algo como:

 let search_str = 'abc'.toLowerCase(); let filtered_results = results .map(v => v.tags.filter(_v => _v.val.toLowerCase().includes(search_str))) .filter(v => v.length) .reduce((a, b) => a.concat(...b), [])
about 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda