Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

217
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda