1
resposta

como popular dois Array com dois FOR. Sendo que o array externo é populado pelo array interno.

Quero construir um array de 5 posições, e quero colocar esse array na primeira posição do array "externo". Depois quero pegar outra interação com novas 5 posições e colocar na segunda posição do array "externo"... assim por diante. Meu código atual mostra o array figuras("Externo") da seguinte forma no console figuras [Array(10), Array(10)] sendo que o resultado que espero é [Array(5), Array(5)]. meu array geometria("interno") está sendo preenchido assim [0, 0, 50, 50, 'yellow', 0, 50, 60, 60, 'blue'] sendo que quero só 5 entradas do usuário.

<meta charset="UTF-8">

<script>
var quantidade = parseInt(prompt("Quantos retângulos deseja desenhar? "));

    var figuras = [];
    var geometria = [];

        for(var casa=0; casa<quantidade; casa++){

            for(var posicao=0; posicao<1; posicao++){
                var xOrigem = parseInt(prompt("Informe o X da Origem da figura " + (casa+1)));
                geometria.push(xOrigem);
                var yOrigem = parseInt(prompt("Informe o Y da Origem da figura " + (casa+1)));
                geometria.push(yOrigem);
                var largura = parseFloat(prompt("Informe a largura da figura " + (casa+1)));
                geometria.push(largura);
                var altura = parseFloat(prompt("Informe a altura da figura " + (casa+1)));
                geometria.push(altura);
                var cor = prompt("Informe a cor da figura " + (casa+1));
                geometria.push(cor);

                break;
            }
            figuras.push(geometria);
    }
</script>
1 resposta

Olá. Após o "figuras.push(geometria)" você deve criar um novo array "geometria" (geometria=[]) para armazenar os novos dados. Do contrário todos os elementos do array "figuras" vão apontar para o mesmo lugar, onde as informações de "geometria" de todas as "figuras" estão em um array único.