Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

308
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!