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

71
Visualizações
Análisis de matrices y construcción de cadenas en Javascript

Creo que estoy cerca, pero me gustaría recibir sus comentarios para resolver esto usando un derivado del código que ya he creado. Pasé las siguientes pruebas, pero estoy luchando para pasar la prueba final porque necesito devolver dos segundos nombres abreviados. , y de momento solo puedo devolver el primero. Las siguientes pruebas muestran la función y los parámetros aprobados, y el resultado esperado es el último con el que estoy luchando. Agradecería su consejo experto. Saludos cordiales, jon

 Test.assertEquals(initializeNames('Jack Ryan'), 'Jack Ryan', ''); Test.assertEquals(initializeNames('Lois Mary Lane'), 'Lois M. Lane', ''); Test.assertEquals(initializeNames('Dimitri'), 'Dimitri', ''); Test.assertEquals(initializeNames('Alice Betty Catherine Davis'), 'Alice BC Davis', '') function initializeNames(name) { let seperateNames = name.split(' '); let output = ""; if (name.length = 2) { output = name; } for (let i = 1; i < seperateNames.length - 1; i++) { output = seperateNames[i]; let abvName = output.substring(0, 1) + '.'; output = seperateNames[0] + ' ' + abvName + ' ' + seperateNames.slice(-1); } return output; }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Esto si la condición es inútil. Porque = es asignación y == es verificación de igualdad.

 if (name.length = 2) { output = name; }

También creo que quería verificar la longitud de la matriz de seperateNames . Ya sabes qué hacer si la longitud es menor que igual a 2.

Pero si no es así, necesita su bucle y un cálculo adicional.

Eche un vistazo al siguiente código que comienza con

  1. el primer nombre, y

  2. agregue el abvName y luego

  3. el apellido

 console.log(initializeNames('Jack Ryan')); console.log(initializeNames('Lois Mary Lane')); console.log(initializeNames('Dimitri')); console.log(initializeNames('Alice Betty Catherine Davis')); function initializeNames(name) { let seperateNames = name.split(' '); let output = ""; if (seperateNames.length <= 2) { output = name; } else{ output = seperateNames[0]; for (let i = 1; i < seperateNames.length - 1; i++) { let currentOutput = seperateNames[i]; let abvName = currentOutput.substring(0, 1) + '.'; output = output + ' ' + abvName + ' '; } output += seperateNames[seperateNames.length - 1]; } return output; }

Nota: x += b; es lo mismo que x = x + b;

about 4 years ago · Juan Pablo Isaza Relatório

0

function initializeNames(name) { const [first, ...rest] = name.split(' '); return !rest ? first : rest.length === 1 ? name : rest.length === 2 ? `${first} ${rest[0][0]}. ${rest[1]}` : `${first} ${rest[0][0]}. ${rest[1][0]}. ${rest[2]}`; }

¿Algún otro caso del rest ?

about 4 years ago · Juan Pablo Isaza Relatório

0

Divida la cadena, use array spread y rest para obtener la primera palabra y el resto de las palabras, y use slice para obtener la palabra del medio y la última. Combínelos todos en una sola matriz, asigne las palabras intermedias a la forma requerida y luego aplanar y unir con espacios:

 const initializeNames = str => { const [first, ...rest] = str.split(' ') const middle = rest.slice(0, -1) const last = rest.slice(-1) return [ first, middle.map(([c]) => `${c.toUpperCase()}.`), last ].flat().join(' ') } const assertEquals = (a, b) => console.log(`"${a}" & "${b}" are ${a === b ? 'equal' : 'not equal'}`) assertEquals(initializeNames('Jack Ryan'), 'Jack Ryan'); assertEquals(initializeNames('Lois Mary Lane'), 'Lois M. Lane'); assertEquals(initializeNames('Dimitri'), 'Dimitri', ''); assertEquals(initializeNames('Alice Betty Catherine Davis'), 'Alice BC Davis')

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