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

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

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 Denunciar

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 Denunciar

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