Você precisa analisar como ficaria cada linha, e tentar generalizar uma regra a partir disso.
Para simplificar, vamos imaginar como seria com apenas quatro linhas (considerando da linha 0 a 3 - sim, muitas coisas em programação começam a contar do zero, então é bom já ir se acostumando a isso):
* * <- linha 3: nenhum espaço antes, 5 espaços no meio
* * <- linha 2: 1 espaço antes, 3 espaços no meio
* * <- linha 1: 2 espaços antes, 1 espaço no meio
* <- linha 0: 4 espaços antes, nenhum espaço no meio
Repare que o que varia em cada linha é a quantidade de espaços antes e depois do primeiro *
(e se não tiver nenhum depois, então eu só imprimo um *
).
A quantidade de espaços antes começa do zero e aumenta de um em um. Já a quantidade de espaços depois é igual ao dobro do número da linha, menos 1. Com isso, ficaria assim:
var qtd_linhas = 9;
var espacos_antes = 0; // espaços antes do primeiro asterisco
// para cada linha
for (var linha = qtd_linhas - 1; linha >= 0; linha--, espacos_antes++) {
for (var i = 0; i < espacos_antes; i++) { // imprime os espaços antes
document.write(" ");
}
// imprime o asterisco
document.write("*");
// espaços antes do segundo asterisco
var espacos_entre = (2 * linha) - 1;
if (espacos_entre > 0) { // se não tem espaços, não imprime nem os espaços, nem o segundo asterisco
for (var i = 0; i < espacos_entre; i++) {
document.write(" ");
}
document.write("*");
}
// pula a linha
document.write("<br>");
}
Repare que no for
eu já usei linha--, espacos_antes++
, ou seja, a cada iteração diminui o número da linha e incrementa a quantidade de espaços antes do asterisco. Aliás, também poderia ser assim:
for (var linha = qtd_linhas - 1, espacos_antes = 0; linha >= 0; linha--, espacos_antes++) {
... etc
Dentro do for
eu sigo a lógica já explicada acima, imprimindo os espaços conforme a quantidade requerida em cada linha.
Para o espaço eu usei o HTML entity  
, que representa o caractere “en-space” (um espaço que geralmente possui a mesma largura da letra “N”). Assim o browser renderiza corretamente: se você usar espaços “normais” - ou seja, a barra de espaço do seu teclado - não vai funcionar porque o browser interpreta uma sequência de vários espaços como um só. Mas usando esses “espaços especiais” ele renderiza corretamente. No meu ficou assim: