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

73
Vistas
Limpiar cadena de matriz por nombre distinto

Tengo una matriz con un montón de coches. Sin embargo, la propiedad Model contiene palabras innecesarias que necesitan limpieza.

Aquí está la matriz:

 const cars = [{ Id: 1, Model: 'Transit 350 L3 Van' }, { Id: 2, Model: 'Transit Custom 300 L2' }, { Id: 3, Model: 'Transit Connect' } ];

Aquí hay una lista de cómo debería ser el nombre:

 const cleanNames = ['Transit Van', 'Transit Custom', 'Transit Connect']

Necesito algún tipo de función que pueda limpiar la cadena del modelo y devolverla si hay una coincidencia. Mi problema es que el uso includes('Transit') da coincidencia con todos e includes('Transit van') no coincide con ninguno. Nota: las palabras fuera de las de cleanNames son dinámicas.

¿Cómo me acerco a esto?

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

0

Si puede cambiar su matriz cleanNames para que sea una matriz de objetos que coincidan con una expresión regular con el reemplazo que desea, es bastante fácil usarlo para hacer coincidir/reemplazar las cadenas:

 const cars = [{ Id: 1, Model: 'Transit 350 L3 Van' }, { Id: 2, Model: 'Transit Custom 300 L2' }, { Id: 3, Model: 'Transit Connect' }, { Id: 4, Model: 'Test' } ]; const cleanNames = [ {find:'Transit.*Van',replace:'Transit Van'}, {find:'Transit Custom.*',replace:'Transit Custom'}, {find:'Transit Connect', replace: 'Transit Connect'} ] const fixModel = (model, replacements) => { var match = replacements.find(r => new RegExp(r.find).exec(model)); if(match) return match.replace; return model } const result = cars.map(car => ({ ...car, Model: fixModel(car.Model, cleanNames) })); console.log(result);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede verificar si todas las palabras de un "nombre limpio" están incluidas en el modelo de un automóvil con este código:

 if (cleanName.split(' ').every(word => car.Model.includes(word)) { // This is a match }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Supongo que cleanNames significa palabras sin números, para eso puedes usar RegEX.

 const cars = [{ Id: 1, Model: 'Transit 350 L3 Van' }, { Id: 2, Model: 'Transit Custom 300 L2' }, { Id: 3, Model: 'Transit Connect' } ]; cars.forEach(car => { // regex to match words that contain numbers car.Model = car.Model.replace(/\S*\d\S*/g, ''); // regex to remove extra spaces car.Model = car.Model.replace(/\s+/g, ' ').trim(); }) console.log(cars)

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