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

265
Vistas
Coloque cada 2 cadenas en una matriz en una matriz en angular

Estoy trabajando con un proyecto angular. Tengo una cadena como la siguiente y ordené todos los caracteres especiales usando expresiones regulares. Ahora, quiero que las primeras 2 cadenas estén entre corchetes y las dos segundas en otro corchete como coordenadas, y el resultado debería ser como el que se muestra a continuación. Por favor, ayúdame a lograr la funcionalidad.

 test: any = "((-1.23568 75.87956), (-1.75682 22.87694))"

Mi código ts es como:

 hello() { this.new = ( this.test.replace(/[^\d. -]/g, '')); this.newarr = this.new.split(" "); const result = this.newarr.filter(e => e); }

y mi resultado final en la matriz de resultados es como:

 ["-1.23568", "75.87956", "-1.75682", "22.87694"]

Salida deseada

 [ ["-1.23568", "75.87956"], ["-1.75682", "22.87694"] ]
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Otro enfoque sería usar String.match() para obtener cada grupo de coordenadas, luego Array.map() y String.split() para dividir en pares.

 let test = "((-1.23568 75.87956), (-1.75682 22.87694))"; const result = test.match(/[\d.-]+\s[\d.-]+/g).map(s => s.split(/\s/)); console.log('Result:', result);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede evitar una lógica compleja de expresiones regulares y solo, una vez que tenga:

 const [a1, a2, b1, b2] = ["-1.23568", "75.87956", "-1.75682", "22.87694"] const result = [[a1, a2], [b1, b2]]

O si hay más de dos parejas:

 const array = ["-1.23568", "75.87956", "-1.75682", "22.87694", "-1.33343", "3.34432"] const result = []; for(let i = 0; i < array.length; i+=2) { result.push(array.slice(i, i+2)) }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Por ejemplo, puede usar Array.prototype.splice() . Esta función puede darle tales 'porciones' para su nueva matriz:

 pairs.push(initialArr.splice(0, 2))

Simplemente recorre su matriz inicial initialArr.length/2 veces.

demostración de trabajo

EDITAR: O tal vez pueda actualizar su lógica de reemplazo para obtener no solo un número tras otro, sino también pares (por ejemplo '-1.23568 75.87956,-1.75682 22.87694' ) y luego simplemente dividirlo dos veces.

 split(',') --> ['-1.23568 75.87956', '-1.75682 22.87694']

y luego bucle y

 split(' ')
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