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

188
Views
Empujar a un elemento en una matriz anidada es agregar a todos los elementos en javascript

Estoy creando una matriz anidada precargada y quiero enviar elementos a índices específicos, pero los elementos se agregan a todos los índices.

 let arr = new Array(4).fill([]) arr => Array(4) [ [], [], [], [] ] //this is what I want arr[0].push(3) arr => Array(4) [ [3], [3], [3], [3] ] //I only wanted to push 3 to first index, //why do all indexes have this element?

Cualquier ayuda sobre cómo actualizar solo un índice sería apreciada.

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

0

let arr = new Array(4).fill([])

Esto está creando arr como una matriz de cuatro referencias a la misma matriz ( [] pasado como argumento). Por lo tanto, la modificación de cualquiera de las referencias modifica la matriz subyacente y, dado que todas ellas hacen referencia a ella, lo notará cuando registre el objeto.

 > arr[0] === arr[1] < true

Simplemente use un buen ol' for , o incluso simplemente [[],[],[],[]] si solo estamos hablando de 4 elementos.

 let arr = new Array(4) for (let i = 0; i < arr.length; i++) arr[i] = new Array()
 > arr[0] === arr[1] < false
about 4 years ago · Juan Pablo Isaza Report

0

Este método de inicialización da una matriz de longitud 4 con una matriz vacía en cada elemento:

[...Array(4)].map(() => []); // [[], [], [], []]

o por ejemplo puedes usar

[...Array(4)].map((_, i) => i); // and get [0, 1, 2, 3]

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!