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

Real necessidade do .join

Na aula 05, vídeo 2 (Construindo um template dinâmico com a função map), ajustamos para que o método "_template()" receba corretamente os dados que inserimos. E o instrutor mostra corretamente uma lógica onde usamos o map para isso. Porém, no final ele diz que o valor precisa usar o .join('') para concatenar e transformar em string.

            <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>
                        </td>
                    `
                    }).join('')}

            </tbody>

Porém o código ainda sim funciona normalmente sem ele.

Gostaria de saber qual é a real função do .join neste caso, e qual a diferença de usá-lo ou não, para que eu possa fixar esse conhecimento na minha cabeça.

1 resposta
solução!

Bom dia meu aluno!

Pegadinha! Você acha que funcionou perfeito, mas não.

Repare na tela que aparecerá, bem discreto três vírgulas ,,,. Isso ocorre porque ao tentar concatenar um array com uma string, o JavaScript chama por debaixo dos panos o toString do array e ele exibe o array com cada item separado por uma vírgula. O join é justamente para que você possa justar os itens convertendo-os em string sem que o JavaScript adicione a vírgula.

Essa pergunta é recorrente aqui no fórum, não se preocupe. Tem gente que nem enxerga as vírgulas, por isso peço que use olhos de lince para encontrá-las na sua página. Firmeza?

Sucesso e bom estudo!