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

220
Visualizações
Obtenga argumentos de una cadena separada por un espacio y convierta un argumento en formato de matriz a una matriz

Tengo argumentos que el usuario pasará para un comando. Cada argumento de un comando se separará con un espacio, que representará un nuevo argumento. Ejemplo: "arg1 arg2 arg3" se convierte en ["arg1", "arg2", "arg3"] donde la salida es una matriz JS. Esto se puede hacer con un simple .split(" ").

Sin embargo, mi problema comienza cuando intento formatear una matriz como argumento de comando. Mi objetivo es permitir que el usuario ingrese un argumento en el formato de una matriz (por ejemplo, comienza con [ puede contener varios elementos separados por un , termina con un ] ), por ejemplo: "arg1 [elem1, elem2] arg3" convierte a ["arg1", ["elem1", "elem2"], "arg3"] donde la matriz interna y externa es una matriz JS.

Intenté usar JSON.Parse() sin embargo, cada elemento requeriría que el usuario tuviera " al comienzo de cada elemento, lo cual es demasiado complejo para el usuario y no es esencial para ingresar. Además, es posible que los elementos no siempre tengan la intención de ser una string y puede ser booleano, numérico o de tipo personalizado.

Hasta el momento, esta ha sido mi mejor solución, pero no cumple con algunos requisitos y tampoco es funcional cuando una matriz tiene un espacio dentro.

 s.split(/[\[\]]|\s+/).filter(arg => arg.length > 1);

Se me ocurrieron algunas otras soluciones, pero a todas les falta una cosa u otra en la especificación requerida establecida anteriormente. Una solución que pueda manejar matrices anidadas sería buena, sin embargo, no es esencial y podría hacer que la solución sea mucho más compleja de lo que debe ser.

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

0

Supongamos que no hay personajes divertidos como entrada. También se permite anidar ahora.

 var str = "arg1 [ elem1 , elem2,elem3 ] arg3"; console.log(str) str = str.replace(/\s*,\s*/g, ','); str = str.replace(/\[\s*/g, '['); str = str.replace(/\s*\]/g, ']'); var arr = str.split(/\s+/); arr = arr.map(function(elem) { return elem.charAt(0) == '[' ? elem.slice(1, -1).split(",") : elem; }) console.log(arr)

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