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

307
Vistas
¿Cómo puedo hacer coincidir cadenas, si una de ellas no es completamente igual?

tengo dos arreglos y quiero verificar para sincronizar ambos, si en ambos existe el mismo nombre que debe estar almacenado en el arreglo y los otros no

por ejemplo: necesito todos los objetos con el nombre rea.jpg pero en mi matriz tengo esto ['dsjajdsj...h2/rea.jpg']
estos son los materiales

 [{name: 'hgb.jpg' }, { name: 'rea.jpg'}, { name: 'ca.png' }]

la extensión del archivo es siempre el final de la cadena

quiero verificar si existe un objeto en la matriz de nombres

 const names = ['h2/rea.jpg'] const materials = [{ name: 'hgb.jpg' }, { name: 'rea.jpg' }, { name: 'ca.png' }] const res = materials.filter(x => names.includes(x.name)) console.log('RES', res)

el resultado esperado debería ser [ {name: 'rea.jpg'}]

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

0

const names = ['h2/rea.jpg'] const materials = [{ name: 'hgb.jpg' }, { name: 'rea.jpg' }, { name: 'ca.png' }] const res = materials.filter(x => { const ni = names.filter(ni => ni.includes(x.name)) return ni.length > 0 }) console.log(res)

Pero si los nombres son largos y no desea iterar sobre cada elemento de los materiales, siga la otra sugerencia y transforme los nombres para incluir solo el nombre del archivo.

 const fnames = names.map(ni => ni.split('/')[ni.split('/').length-1]) const res = materials.filter(x => names.includes(x.name)) console.log(res)
about 4 years ago · Juan Pablo Isaza Denunciar

0

Use some dentro del filtro para lograr esto (tenga en cuenta que esto se ejecutará en O (n ^ 2)).

 const names = ['h2/rea.jpg'] const materials = [{ name: 'hgb.jpg' }, { name: 'rea.jpg' }, { name: 'ca.png' }] const res = materials.filter(x => names.some(y => y.endsWith('/' + x.name))) console.log('RES', res)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Suponiendo que se trata de Node.js, puede usar la biblioteca de path para convertir los nombres de ruta completamente calificados en nombres de archivo simples y luego hacer su prueba de inclusión. Por ejemplo:

 const path = require('path'); const pathnames = ['h2/rea.jpg']; const filenames = pathnames.map((x) => path.basename(x)); const materials = [ { name: 'hgb.jpg', }, { name: 'rea.jpg', }, { name: 'ca.png', }, ]; const res = materials.filter((x) => filenames.includes(x.name)); console.log('RES', res); // RES [ { name: 'rea.jpg' } ]
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