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

189
Visualizações
Compare la cadena de la matriz y, si la cadena duplicada está disponible, agregue el número incrementado a la cadena duplicada al crear un registro

Necesito crear un registro, pero debo verificar si en la lista dada, el registro con el mismo nombre está disponible o no, si está disponible, luego agrego con un número incrementado. A continuación se muestra la lista dada.

 let listOfValues = [ { name: "Peter", age: 25 }, { name: "Paul", age: 35 }, { name: "Paul-1", age: 35 }, { name: "Dom", age: 28 }

]

Y, estoy creando un registro de la siguiente manera:

 let requestBody = { name: "Paul", age: 28 }

Ahora, quiero comparar el nombre de requestBody con la lista dada. Supongamos que Paul ya está disponible, luego verificará si Paul-1 también está disponible y luego debería incrementarse con un número como Paul-2. Cualquier ayuda sería apreciada.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Solución genérica

  • Genere un Regex para verificar una cadena que comience con el nombre en requestBody .
  • Filtre la lista buscando los nombres que coincidan con Regex.
  • Debe dividir los nombres en "-" y devolver el índice del nombre.
  • Ordene la lista de índices para que el índice más grande esté al final de la lista.
  • Verifique la longitud de la lista filtrada, si es cero, puede presionar directamente.
  • Si es uno, puede empujar el elemento agregando 1 al nombre.
  • Si es mayor que uno, incremente el último índice y agréguelo a name y push.

violín de trabajo

 let listOfValues = [ { name: "Peter", age: 25 }, { name: "Paul", age: 35 }, { name: "Paul-1", age: 35 }, { name: "Dom", age: 28 } ]; let requestBody = { name: "Paul", age: 28 } const regex = new RegExp('^' + requestBody.name.split('-')[0], 'i'); const existingList = listOfValues.filter((item) => item.name.match(regex)).map((item) => +item.name.split('-')[1]).sort((a, b) => a - b); if (existingList.length > 0) { const finalIndex = existingList[existingList.length - 1]; listOfValues.push({ name: finalIndex ? `${requestBody.name.split('-')[0]}-${(finalIndex + 1)}` : `${requestBody.name}-1`, age: requestBody.age }); } else { listOfValues.push(requestBody); } console.log(listOfValues);

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