Instruções

Construa um Gerador de Intervalo de Números

Neste laboratório, você irá construir uma função rangeOfNumbers que gera um array de números dentro de um intervalo especificado. Exemplos:
  • rangeOfNumbers(3, 9) retorna [3, 4, 5, 6, 7, 8, 9]
  • rangeOfNumbers(5, 5) retorna [5]
Requisitos:
  • Use recursão (a função deve chamar a si mesma)
  • Sem loops ou métodos de array (for, while, Array.from, forEach, map, filter, reduce)
Objetivo: Cumprir as user stories abaixo e fazer todos os testes passarem para completar o laboratório. Histórias de Usuário: 1. Você deve criar uma função chamada rangeOfNumbers que recebe dois parâmetros: startNum e endNum. 1. A função deve retornar um array de inteiros que começa com o número representado pelo parâmetro startNum e termina com o número representado pelo parâmetro endNum (inclusivo). 1. O startNum sempre será menor ou igual ao endNum. 1. Sua função deve usar recursão fazendo uma chamada a si mesma. Ela não deve usar nenhuma sintaxe de loop (for, while, Array.from(), ou funções de mais alta ordem como forEach, map, filter ou reduce). 1. A função deve lidar com o caso base onde startNum é igual a endNum retornando um array contendo apenas esse único número. 1. Para o caso recursivo, a função deve chamar a si mesma com parâmetros modificados para construir o array, e então adicionar o número atual ao resultado. 1. A função não deve depender de variáveis globais para armazenar em cache ou construir o array.

O que fazer:

Testes:

  • Você deve ter uma função chamada `rangeOfNumbers`.
  • A função `rangeOfNumbers` deve receber dois parâmetros.
  • Sua função deve retornar um array.
  • Seu código não deve usar nenhuma sintaxe de loop (`for`, `while`, `Array.from()` ou funções de ordem superior como `forEach`, `map`, `filter` ou `reduce`).
  • `rangeOfNumbers` deve usar recursão (chamar a si) para resolver este desafio.
  • `rangeOfNumbers(1, 5)` deve retornar `[1, 2, 3, 4, 5]`.
  • `rangeOfNumbers(6, 9)` deve retornar `[6, 7, 8, 9]`.
  • `rangeOfNumbers(4, 4)` deve retornar `[4]`.
  • `rangeOfNumbers(10, 15)` deve retornar `[10, 11, 12, 13, 14, 15]`.
  • `rangeOfNumbers(2, 8)` deve retornar `[2, 3, 4, 5, 6, 7, 8]`.
  • As variáveis globais não devem ser usadas para armazenar em cache o array.

Preview