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

250
Visualizações
JavaScript number stepper pattern optimization

I have a problem where I need to display the below output

1
23
456
78910

My solution which uses the limit of the number count is below.

let numberStepper = (stepLimit) => {
  let stepCounter = 0;
  let step = '';

  for(let row = 1; row <= stepLimit; row++) {
      step = '';
      
     for(let col = 1; col <= row; col++) {
         stepCounter++;
         
         step += `${stepCounter}`  
     }

      if(stepCounter > stepLimit) {
          break;
      }

      console.log(step);
  }
   
}

numberStepper(10) // Gives desired output 

Another solution that limits the number of steps output is below.

let numberStepper = (stepsLimit) => {
  let stepCounter = 0;
  let step = '';

  for(let row = 1; row <= stepsLimit; row++) {
      step = '';
      
     for(let col = 1; col <= row; col++) {
         stepCounter++;
         
         step += `${stepCounter}`  
     }

      console.log(step);
  }
   
}

numberStepper(4) // Gives desired output 

How can I refactor this function to have a clean implementation?

Any ideas on the first implementation? where the argument determines the numbers displayed in the steps instead of using the number of steps as the determinant of the numbers displayed?

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

0

You can do it in one for loop for the first approach where the argument is the number limit to be counted until instead of number of rows

function printNumbers(n){
  for(
    var counter = 1, 
    breakPointer = 1, 
    newBreakPointer = 1; 
    counter <= n; 
    counter++, 
    breakPointer--
  ){
    if(breakPointer == 0){
      document.write("<br>");
      newBreakPointer++;
      breakPointer = newBreakPointer;
    }

    document.write(counter);
  }
}

printNumbers(10)

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