Passar por números claramente é um trabalho para um loop. E selecionar o que imprimir é um assunto da execução condicional. Lembre-se que o truque de usar o operador restante %
para checar se um número é divisível por outro número (tem resto zero).
A segunda versão do programa pode ser resolvida de forma simples (apenas adicionando outro "ramo" que precisamente testa a condição dada), ou de forma mais inteligente (construindo uma cadeia de caracteres contendo a palavra para saída, e imprimindo esta palavra ou o número, se não houver palavra, potencialmente fazendo uso do elegante operador ||
).
numeroTamanho = 100; // Quantidade máxima de números.
for(var numero = 1; numero <= numeroTamanho; numero++){
// Se divisível por 3 e 5.
if((numero % 3 == 0) && (numero % 5 == 0)){
console.log('FizzBuzz');
// Se divisível por 3.
} else if(numero % 3 == 0){
console.log('Fizz');
// Se divisível por 5.
}else if( numero % 5 == 0){
console.log('Buzz');
// Se não for divisível nem por 3 nem por 5.
} else {
console.log(numero);
}
}