Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

221
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!