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

139
Visualizações
Cambiar el cierto valor de índice de la matriz bidimensional javascript

Estoy tratando de poner cierto valor en cierta matriz bidimensional pero agrega diferente.

Aquí está mi código.

 const arr = [] const tdArr = [] arr.length = 5 arr.fill('p', 0) for(let i = 0; i < arr.length; i++){ tdArr.push(arr) } const makeRnd = (min, max) => { min = Math.ceil(min) max = Math.floor(max) return Math.floor(Math.random() * (max - min)) + min } let firstRnd = makeRnd(0, 4) let secRnd = makeRnd(0, 4) let tdArr2 = [...tdArr] tdArr2[firstRnd][secRnd] = 'q' console.log(tdArr2)

No sé por qué no (por ejemplo) tdArr2[0][1] no se cambia, pero también cambia todos los segundos valores de las matrices.

Parece fácil, pero no puedo buscarlo en Google :( ¡Gracias por la ayuda!

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

0

Use tdArr.push([...arr]) en el bucle for en lugar de tdArr.push(arr) .

 const arr = [] const tdArr = [] arr.length = 5 arr.fill('p', 0) for(let i = 0; i < arr.length; i++){ tdArr.push([...arr]) } const makeRnd = (min, max) => { min = Math.ceil(min) max = Math.floor(max) return Math.floor(Math.random() * (max - min)) + min } let firstRnd = makeRnd(0, 4) let secRnd = makeRnd(0, 4) let tdArr2 = [...tdArr] tdArr2[firstRnd][secRnd] = 'q' console.log(tdArr2)

about 4 years ago · Juan Pablo Isaza Relatório

0

Como mencionó @Dave Newton, cada elemento de la matriz tdArr es el mismo que es una referencia a arr , por lo que cuando cambia un valor de arr , todos los elementos de tdArr cambian, ya que todos hacen referencia a la misma matriz.

Presionaría una matriz literal en lugar de crear una matriz y luego la empujaría o crearía una copia como se menciona en la respuesta anterior y empujaría la copia en cada iteración.

 tdArr.push(['p']);
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