Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Necessidade do .join('') ???

Não entendi muito bem a utilização do .join(''), pela explicação. Li a transcrição do vídeo e continuei com a dúvida. Então resolvi colocar um console.log para ver o resultado do código com e sem essa função, com o objetivo de entender o motivo de utilizar o mesmo. Porém, tanto o LOG, quanto a inserção na tabela, das negociações, ocorrem da mesma forma COM e SEM o .join(''). Então gostaria que alguém pudesse me explicar para que serve e a necessidade de utilizar a referida função nessa parte do código. Obrigado!

1 resposta
solução!

Fala ai Thiago, tudo bem? Vamos lá:

Então gostaria que alguém pudesse me explicar para que serve e a necessidade de utilizar a referida função nessa parte do código. Obrigado!

O join serve para você transformar um array em string, mas, porque eu faria isso? No seu caso, como você está montando um código HTML através de um array você precisa garantir que o resultado do seu template será uma string.

Por padrão, se você utilizar passar um array para um template string ele vai chamar uma função toString existente em todo array por padrão, exemplo:

`${[1,2,3]}`

O resultado dessa template string seria: "1,2,3".

Repare que cada item do array por padrão é separado com uma vírgula, agora se você testar o mesmo array com o join:

`${[1,2,3].join('')}`

Repare que o resultado é: "123".

Ou seja, a gente transformou nosso array em string, porém, removemos o separador dos itens, isso porque passamos uma string vazia para o join, no caso: .join(''). Essa string vazia seria o separador.

Agora voltando para seu código (código da aula):

<tbody>
    ${model.negociacoes.map(n => {

      return `
        <tr>
            <td>${DateHelper.dataParaTexto(n.data)}</td>
            <td>${n.quantidade}</td>
            <td>${n.valor}</td>
            <td>${n.volume}</td>
        </tr>
      `
      }).join('')}
</tbody>

Se você remover o join, a template string vai inserir uma vírgula entre cada tr na página. Por isso foi utilizado o join, para que não existe essa vírgula.

Espero ter ajudado.