Solucionado (ver solução)
Solucionado
(ver solução)
10
respostas

escada de array com for - javascript

Bom dia, estou precisando de ajuda com um desafio que preciso fazer. Preciso criar uma função em javascript que receba um número e crie um array com variaveis com esse número de caracteres, sendo na primeira variavel um '#', na segunda dois '#' e assim por diante . Exemplos:

  • Ex1: funcao(5):

Resultado: [" #", " ##", " ###", " ####", "#####"]

  • Ex2: funcao(3):

Resultado: [" #"" ##","###"]

Alguém poderia me ajudar? Muito obrigado

10 respostas

Olá, Gabriel.

Você já tem algum código que está tentando pra eu conseguir ver qual o caminho lógico que você está seguinte?

É importante você tentar alguma coisa e postar pra você ter um bom aprendizado e com isso. Eu vendo um código que você está fazendo também consigo ver seus pontos de dificuldade e posso te passar quais cursos você pode fazer na plataforma que poderá te ajudar a crescer na sua carreira de forma mais efetiva ;-)

Eu sei o código que resolve esse desafio, mas só postar ele aqui não fará você aprender.

Ah! Gostei do desafio, interessante. Posta seu código e bora resolver juntos

Legal!! Prefiro assim também! hehehe Eu comecei, mas dei uma travada! Vou passar o que eu fiz aqui, mas está incompleto ainda.

function escada(altura){
  let lista = [];
  for(let linha = 0; linha < altura; linha++){
    for(let coluna = 0; coluna < lista.length; coluna++){
      lista.push(" ".repeat(altura - linha) + "#".repeat());
    }
  }
}

Muito bom, Gabriel.

Por que você fez dois for, um dentro do outro?

Pelo que entendi do se exemplo no primeiro post o que você quer é ter um função que receba um parâmetro, esse parâmetro será um número. Dentro da função você quer ver qual foi o valor que veio no parâmetro e criar um array exatamente com a quantidade de posições que você recebe no parâmetro e cada posição será preenchida com "#", mas essa "#" vai crescendo a cada nova posição. É isso?

Ah! Se for isso mesmo, eu faria algo asssim:

function escada(altura){
  let lista = [];
  for(let index = 1; index <= altura; index++){
    lista.push("#".repeat(index))
  }

  lista.forEach(function(item) {
    console.log(item)
  })
}

escada(10)

É isso sim, a única coisa a mais é que tem espaços em branco em cada valor também (que vai diminuindo a cada posição). Tinha pensado em uma ideia que já nem lembro mais pra colocar outro for... hahahahh Refiz... Acho que só preciso montar a regra de repetição agora, né?

function escada(altura){
  let lista = [];
  for(let i = 0; linha < altura; i++){
    lista.push(" ".repeat() + "#".repeat());
  }
  return lista;
}

Ixi, não entendi o lance dos espaços :-(

Da uma olhada no código que fiz acima pra ver se ajuda :-)

Se não ajudar você pode me tentar me explicar de outra forma o lance dos espaços?

Pensei algo novo, mas deu errado.

function escada(altura){
  let lista = [];
  for(let i = 1; linha <= altura; i++){
    lista.push(" ".repeat(altura - i) + "#".repeat(i));
  }
  return lista;
}

É como se fosse uma escada: No primeiro item do array (de altura 5) seriam 4 espaços(em branco) e 1 '#', no segundo item seriam 3 espaços e 2 '#', no terceiro seriam 2 espaços e 3 '#' e assim por diante.

solução!

CONSEGUI!!! Obrigado!! =)

function escada(altura){
  let lista = [];
  for(let i = 1; i <= altura; i++){
    let espaco = altura - i;
    lista.push(" ".repeat(espaco) + "#".repeat(i));
  }
  return lista;
}

Show de bola.

Parabéns Gabriel :-)

Gostei de parear com você por texto....kkkkk