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

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

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 Report

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 Report

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