O ponto chave é a recursão. Recursão é quando uma função chama ela mesma até chegar em um caso base simples que desencadeia a resolução do problema. Recursão é um conceito muito importante e comum na computação, ela permite que problemas grandes e complexos sejam quebrados em tarefas mais simples e claras.
Aqui os nossos casos base são quando nenhum ou apenas um "chunk" devem ser retornados. Caso sejam vários "chunk" eles vão se acumulando ao chamar a própria função novamente:
function recursiveChunks(num) { if (num === 0) {
return ""
}
if (num === 1) [
return "chunk"
} else {
return "chunk-" + recursiveChunks(num - 1)
}
}
Podemos reduzir o tamanho do código ao remover as chaves do ifs mais simples e utilizar o operador ternário:
function recursiveChunks(num) {
if (num === 0) return ""
return num === 1 ? "chunk" : "chunk-" + recursiveChunks(num - 1)
}