Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

66
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda