Как условно отобразить запятые и точки? - PullRequest
0 голосов
/ 16 мая 2019

У меня есть три элемента, которые должны быть отображены условно, и я хочу иметь возможность отображать запятые между ними, и период, если это последний элемент, который должен быть отображен.

{this.state.a&&i++}    
{this.state.b&&i++}  
{this.state.c&&i++}                  
{this.state.a && (i==1?"item a.":"item a,")}
{this.state.b && (i==2?"item b.":"item b,")}
{this.state.c && (i==3?"item c.":"item c,")}

Так что, очевидно, это не работает так, как это возможно для других элементов, чтобы быть единственным элементом, когда i = 1, для третьего элемента может потребоваться период, когда i = 2, и т. Д. И т. Д. Это просто выглядит как много условий для проверки, я полагаю, должен быть более простой способ сделать это?

1 Ответ

4 голосов
/ 16 мая 2019

Вы можете воспользоваться помощью массивов здесь.

const newArray = [];
{this.state.a && newArray.push('item a')};
{this.state.b && newArray.push('item b')};
{this.state.c && newArray.push('item c')};

if (newArray.length) {
  console.log(`${newArray.join(',')}.`);
} else {
  console.log('No items present.');
}

Я надеюсь, что это работает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...