Tentei fazer o exercício antes da explicação e acabei seguindo uma abordagem diferente.
Nessa abordagem fiz:
1 - Uma condicional que verifica se os valores sao números e retorna uma mensagem caso não sejam.
2 - Condicionais que comparam os dois valores, para saber qual é o maior e qual o menor, e assim poder gerar um array crescente ou decrescente.
3 - Uma variável com o tamanho do array que será gerado.
4 - Uma condicional que retorna um array com um único elemento caso os valores inseridos na função sejam iguais.
function createArray (firstNumber, lastNumber){
if(isNaN(firstNumber) || isNaN(lastNumber)){
return "Valores Inválidos!";
}
const array = [];
if(firstNumber == lastNumber){
array[0] = firstNumber;
}
if(firstNumber < lastNumber){
const sizeOfNewArray = Math.abs(lastNumber - firstNumber) + 1;
for(let i = 0; i < sizeOfNewArray; i++){
array[i] = firstNumber + i;
}
}
if(firstNumber > lastNumber){
const sizeOfNewArray = Math.abs(firstNumber - lastNumber) + 1;
for(let i = 0; i < sizeOfNewArray; i++){
array[i] = firstNumber - i;
}
}
return array;
}
console.log(createArray(10, 8));
console.log(createArray(-10, 5));
console.log(createArray(20, 20));
console.log(createArray("peixe", 8));