В следующем примере я пытаюсь отобразить список сообщений (заголовок, текст и их теги):
const container = $('.container');
posts.forEach((post)=> {
container.append(
`<div>
<h2>${post.title}</h2>
<p>${post.body}</p>
<div>
${post.tags.map((tag) => {
`<span>${tag.name}</span>`
})}
</div>
</div>`)
});
Однако в выходных данных между тегами отображается дополнительная запятая. Я попытался вывести «test» вместо фактических имен тегов, а также заменить тег span на другой тег html, но результат все тот же.
Я попытался найти эту проблему, но мне так и не удалось найти кого-нибудь еще, у кого есть эта проблема с шаблонными литералами.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Именно так работает Array.join () по умолчанию (который вызывается при неявном преобразовании массива в строку), добавляя запятую между записями массива - это то, что возвращает map () -> массив. Вы можете легко избавиться от него, вызвав его самостоятельно, передав пустую строку в качестве аргумента функции join ().
${post.tags.map((tag) => `<span>${tag.name}</span>`).join('')}
Обратите внимание, что вам тоже нужно будет вернуться с карты ...
Спасибо за объяснение, это действительно решает проблему.