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

134
Visualizações
Matriz de cadena a matriz de matriz en Javascript

Me pregunto cómo convertir una matriz de cadenas

 lines = ['101','010','110'];

a una matriz de matrices como esta:

 x = [ [1,0,1], [0,1,0], [1,1,0]' ]

ya lo intenté

 x = (lines.forEach(e => (e.split(''))))

y me di cuenta String.split no muta la cadena actual. Entonces, mi siguiente paso fue crear una nueva matriz con estos valores.

 x = new Array(lines.forEach(e => (e.split(''))))

Mis pensamientos detrás de esta línea: el código debe tomar un elemento (e) de la matriz de líneas y aplicarle la función de división. (que es lo que ocurre cuando console.log() it.) PERO no lo aplica a la nueva matriz.

Tal vez el problema es que no pasa por x , pero tal vez pase por alto otro hecho.

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

0

Puede usar .map(Number) en el resultado de split() para convertirlos en un Número como se esperaba

 const lines = ['101','010','110']; const res = lines.map(l => l.split('').map(Number)); console.log(res);

 [ [ 1, 0, 1 ], [ 0, 1, 0 ], [ 1, 1, 0 ] ]

Con respecto a su solución forEach , dado que forEach no devuelve nada, x permanece undefined

Podría definir una matriz vacía y empujar su split() en esa matriz vacía, pero usar map() es una solución más legible/limpia.

Para obtener más información sobre map() vs forEach() , consulte esta respuesta de stackoverflow .

about 4 years ago · Juan Pablo Isaza Relatório

0

Según la respuesta de @OstoneO, Array#map() es el método más apropiado para usar, por lo tanto, sería mi primera opción.

El valor de retorno de Array#forEach() no está definido porque no está diseñado para devolver un valor; es un bucle y debe usarse como tal:

 const lines = ['101','010','110']; const x = []; lines.forEach( line => x.push( line.split('').map(n => +n) ) ); console.log( x );

about 4 years ago · Juan Pablo Isaza Relatório

0

Usando el método Array.prototype.reduce ,

 ['101','010','110'].reduce((acc,val,index)=>{ acc[index] = [...val.split("").map((item)=>parseInt(item))]; return acc; } ,[]);
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