Я пытаюсь сопоставить массив и добавить запятые между каждым экземпляром, за исключением последнего

#javascript #reactjs

#javascript #reactjs

Вопрос:

Я хочу перечислить имена всех пользователей, возвращенных из моего бэкэнда. Я решил не помещать их в <ul> или <ol> , потому что я хочу, чтобы они отображались рядом друг с другом, разделенные запятыми. Мне интересно, каким наилучшим способом было бы добавить запятые после каждого имени, кроме последнего, прямо сейчас я сопоставляю значение следующим образом:

  <p>
  You have notes for the following users that are overdue:
     {list amp;amp; list.map((items) => <> {items.userName},</>)}
 </p>
  

Ответ №1:

Вы можете использовать Array#join :

 <p>
    You have notes for the following users that are overdue:
    { list amp;amp; list.map((items) => items.userName).join(',') }
</p>
  

Если вы хотите, чтобы эти имена были в отдельных тегах, вы также можете добиться этого, используя css:

 <p>
    You have notes for the following users that are overdue:
    {list amp;amp; list.map((items) => <span class="name">{items.userName}</span>)}
</p>
  
 p .name:not(:last-of-type)::after {
    content: ',';
}
  

Комментарии:

1. Спасибо за ваш ответ! По какой-то причине, когда я пытаюсь .join(‘, ‘) после сопоставления списка, он отображает мои имена пользователей как [object, Object] . Я никогда не понимаю, почему это происходит. Второе решение, которое вы предоставили, предлагает тот же результат, что и там, <> {items.userName},</> где он ставит запятые после каждого экземпляра, включая последний.