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

180
Views
Agregue un nivel más de matrices anidadas en una matriz de matrices con datos iniciales JavaScript

Tengo la siguiente matriz de matrices:

 [ [ '3b5ec76c-a501-4edf-b97c-2526d6d3e147', '1 & 2' ], [ '1f7a07f4-45aa-4a35-ad42-d3f187ee804a', '3 & 4' ], [ 'c8a4eead-79ee-4d4b-a16d-68723798d338', '5 & 6' ] ]

Tengo que split the second item de cada matriz anidada y create two new arrays con ellos y el first item of a nested array como esta:

 [ [ [ '3b5ec76c-a501-4edf-b97c-2526d6d3e147', '1' ], [ '3b5ec76c-a501-4edf-b97c-2526d6d3e147', '2' ] ], [ [ '1f7a07f4-45aa-4a35-ad42-d3f187ee804a', '3' ], [ '1f7a07f4-45aa-4a35-ad42-d3f187ee804a', '4' ] ], [ [ 'c8a4eead-79ee-4d4b-a16d-68723798d338', '5' ], [ 'c8a4eead-79ee-4d4b-a16d-68723798d338', '6' ] ] ]

Necesito este tipo de nested array porque la uso para una bulk insert in nodeJS .

Mi current method que estoy usando para crear esta matriz se ve así:

 console.log(teams.map(team => { let initialArray = [] let firstPlayer = [uuidv4(), team[0], team[1].split(' & ')[0]] let secondPlayer = [uuidv4(), team[0], team[1].split(' & ')[1]] data = (initialArray.concat(firstPlayer)).concat(secondPlayer) return data }))

Y la respuesta es así:

 [ [ 'da4d27fb-06e3-4075-aaba-be799d793bbd', '3b5ec76c-a501-4edf-b97c-2526d6d3e147', '1', 'df869f69-76fb-41bc-af59-f86c1c623cfb', '3b5ec76c-a501-4edf-b97c-2526d6d3e147', '2' ], [ 'fb7c5620-6f20-4586-a82a-30c0ea39022e', '1f7a07f4-45aa-4a35-ad42-d3f187ee804a', '3', '1d30d9d7-3d63-4309-a7d3-5bc6abe17500', '1f7a07f4-45aa-4a35-ad42-d3f187ee804a', '4' ], [ '433159a1-ee21-4f91-ae6e-69fb359b747b', 'c8a4eead-79ee-4d4b-a16d-68723798d338', '5', '8321a976-9bae-408d-810b-f5508012d58e', 'c8a4eead-79ee-4d4b-a16d-68723798d338', '6' ] ]

También probé un método que usa reduce que se encuentra en esta stackoverflow question : devuelve múltiples matrices usando la función "mapa"

Si alguien conoce un método para esto, o necesita más explicaciones, hágamelo saber.

¡Gracias!

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Pruebe este enfoque

 const data = [[ '3b5ec76c-a501-4edf-b97c-2526d6d3e147', '1 & 2' ],[ '1f7a07f4-45aa-4a35-ad42-d3f187ee804a', '3 & 4' ],[ 'c8a4eead-79ee-4d4b-a16d-68723798d338', '5 & 6' ]]; const result = data.map(([guid, teams]) => { const [team1, team2] = teams.split(' & '); return [[guid, team1], [guid, team2]]; }); console.log(result);
 .as-console-wrapper{min-height: 100%!important; top: 0}

Mismo resultado pero con oneliner

 const data = [[ '3b5ec76c-a501-4edf-b97c-2526d6d3e147', '1 & 2' ],[ '1f7a07f4-45aa-4a35-ad42-d3f187ee804a', '3 & 4' ],[ 'c8a4eead-79ee-4d4b-a16d-68723798d338', '5 & 6' ]]; const result = data.map(([guid, teams]) => teams.split(' & ').map((team) => [guid, team])); console.log(result);
 .as-console-wrapper{min-height: 100%!important; top: 0}

about 4 years ago · Juan Pablo Isaza Report

0

Esto también funcionaría.

Usando Array.prototype.reduce()

 const input = [ [ '3b5ec76c-a501-4edf-b97c-2526d6d3e147', '1 & 2' ], [ '1f7a07f4-45aa-4a35-ad42-d3f187ee804a', '3 & 4' ], [ 'c8a4eead-79ee-4d4b-a16d-68723798d338', '5 & 6' ] ] const output = input.reduce((prev, [uuid, combinedValue]) => { const [first,second] = combinedValue.split(" & "); prev.push([[uuid, first], [uuid, second]]); return prev; },[]) console.log(output);

about 4 years ago · Juan Pablo Isaza Report

0

Solo necesitas 3 líneas de código

 const source = [ ["3b5ec76c-a501-4edf-b97c-2526d6d3e147", "1 & 2"], ["1f7a07f4-45aa-4a35-ad42-d3f187ee804a", "3 & 4"], ["c8a4eead-79ee-4d4b-a16d-68723798d338", "5 & 6"], ]; const destination = source.map(team => { const options = team[1].split('&'); newSubDestinationArray = options.map(item => ["your uuid id", team[0], item]); return newSubDestinationArray; }) console.log(destination)
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!