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

269
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 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