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

187
Visualizações
Mueva las letras mayúsculas de cadena al frente mientras mantiene el orden (JavaScript)

Esta es mi primera publicación, así que espero estar haciendo esto correctamente.

Estoy tomando una clase de codificación y se nos pidió que hiciéramos un fragmento de código que solicitará la entrada de una frase y devolverá en la consola esa frase con las letras mayúsculas movidas al frente, pero aún en el mismo orden. Luego imprima en la consola esta frase reordenada. (No se nos permite usar matrices) Por ejemplo: Ingresar "HeLLoTherE" devolvería "HLLTEeoher"

Sin embargo, el problema es que tengo problemas para entender cómo escribir este código. ¿Cómo puedo hacer que el código seleccione estas letras mayúsculas y las mueva al frente? usando .toUpperCase()? ¿Cómo puedo hacer que seleccione la letra y la mueva delante del resto? Si alguien pudiera mostrarme un ejemplo de cómo se hace esto y explicarlo un poco, se lo agradecería mucho :)

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

0

Puede comenzar con el algoritmo más sencillo para que algo funcione.

 let value = "HeLLoTherE"; let result = ""; for (let char of value) { if (char >= "A" && char <= "Z") { result += char; } } for (let char of value) { if (char >= "a" && char <= "z") { result += char; } } console.log(result);

Luego podría consolidar los 2 bucles combinando las condiciones.

 let value = "HeLLoTherE"; let upper = ""; let lower = ""; for (let char of value) { if (char >= "A" && char <= "Z") { upper += char; } else if (char >= "a" && char <= "z") { lower += char; } } console.log(upper + lower);

Otra forma de resolver esto sería usar expresiones regulares.

 var value = "HeLLoTherE"; var upper = value.replace(/[^AZ]*/g, ""); var lower = value.replace(/[^az]*/g, ""); console.log(upper + lower);

about 4 years ago · Juan Pablo Isaza Relatório

0

Bueno, no puede usar matrices, lo que lo hace un poco difícil, sin embargo, aún puede hacer algo.

Aunque estoy usando un ciclo for, en realidad no estoy usando arreglos. Dado que las cadenas permiten el operador [] , puede usar un índice para seleccionar cada carácter de la cadena y verificar si está en minúsculas o mayúsculas.

Además, dijo que necesita mantener el orden de las letras mayúsculas, por lo que no podría simplemente hacer newStr = upper + newStr , porque revertiría el orden original. Entonces, usé string.prototype.substring() para insertar el carácter en mayúscula donde debería estar.

 const str = "HeLLoTherE"; const moveUpperToFront = (target) => { // Strings are immutable in js, so you cannot move one character // to the front without using a new string. let newStr = ""; // Number of uppercase letters that appeared. // It's necessary because you need to mantain the original order let upperNumber = 0; // Iterate each character from beginning for (let i = 0; i < str.length; ++i) { // Is there an uppercase letter? if (str[i].charCodeAt() >= 65 && str[i].charCodeAt() <= 90) { newStr = newStr.substring(0, upperNumber) + str[i] + newStr.substring(upperNumber, newStr.length); ++upperNumber; } // No uppercase letter? else newStr += str[i]; } return newStr; }; console.log(moveUpperToFront(str));

about 4 years ago · Juan Pablo Isaza Relatório

0

Esto realmente no es un problema muy difícil:

 function rearrange(str) { let result = ""; for (let c of str) if (c >= 'A' && c <= 'Z') result += c; for (let c of str) if (c < 'A' || c > 'Z') result += c; return result; } console.log(rearrange("Hello World, It Is A Beautiful Morning!"));

Busque los caracteres en mayúsculas y agréguelos a una cadena de resultado. Luego regrese y busque los otros caracteres, y agréguelos al final. Al recorrer sin ordenar, solo una iteración simple de principio a fin, se conserva el orden (aparte de las mayúsculas).

La parte verdaderamente difícil de esto sería encontrar una forma de detectar letras "mayúsculas" en todo Unicode. Algunos idiomas (bueno, ortografías) no tienen el concepto en absoluto. JavaScript tiene formas que son más y menos convenientes para lidiar con eso, pero sospecho que por el material de clase que el OP tiene disponible hasta ahora, dada la naturaleza de la pregunta original, tal engaño de expresiones regulares probablemente sería inapropiado para una respuesta.

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