Замена значений при отображении через массив - PullRequest
0 голосов
/ 15 апреля 2020

Я сопоставляю массив в одном из моих компонентов React.

Можно ли заменить значения при использовании map для записи каждого члена массива?

Например, если У меня есть этот массив:

{ rowInfo.value.map(
      weaponIds => (<span>{weaponIds}</span>)
) }

, который записывает:

<span> 1 </span>
<span> 3 </span>
<span> 4 </span>
<span> 8 </span>

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

, поэтому:

<span> Pistol </span>
<span> Hunting Rifle </span>
<span> Machete </span>
<span> Machine Gun </span>

Обратите внимание, что имена не существуют в API.

Так что я бы как-то должен был назначить его так, чтобы 1 = Пистолет, 2 = Кинжал, 3 = Охотничье ружье и т. Д. c ...

Я попытался написать так:

{ rowInfo.value.map(
      weaponIds => (<span>{weaponIds => (1 = Pistol), (2 = Dagger) etc... }</span>)
) }

Но это выдает кучу ошибок, и моя страница больше не загружается вообще.

Спасибо за любую помощь! :)

Ответы [ 2 ]

2 голосов
/ 15 апреля 2020

Создать объект со всеми ключами и значением

const obj = {
  1: 'Pistol',
  2: 'Dagger',
  //...
}

Затем используйте:

{ 
  rowInfo.value.map(
    weaponIds => (<span>{obj[weaponIds]}</span>) 
  ) 
}
1 голос
/ 15 апреля 2020

Вы пробовали использовать Enum?

enum Weapons {
   Pistol = 1,
   Dagger,
   'Machine Gun',
   ...
}

{ rowInfo.value.map(
  weaponIds => (<span>{Weapons[weaponIds]}</span>)
) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...