Какую коллекцию можно использовать для сопоставления пар ключ-значение в обоих направлениях? - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь настроить коллекцию кодов стран. Поскольку мой веб-интерфейс отображает его, я хочу, например, показать «Австрия», но при отправке его бэкэнду я просто хочу отправить «А», поскольку он хранится именно так. В идеале это будет выглядеть примерно так:

CountryCodes = {
  A: "Austria",
  D: "Germany",
}

console.log(CountryCodes["A"]); // -> "Austria"
console.log(CountryCodes["Austria"]); // -> "A"

Я думал, что смогу использовать enum с

enum MyEnum {
  first = 0,
  second = 1,
}

становится

MyEnum = {
  0 = "first",
  1 = "second"
  first = 0,
  second = 1,
}

при переносе из машинописного текста в javascript. Но это не тот случай, если значения перечислений не являются числами.

Я не уверен, какую коллекцию использовать, так как я не хочу добавлять две keyValuePairs для каждого кода страны. У вас есть идея, как решить такую ​​проблему? Я упускаю очень очевидное решение здесь?

1 Ответ

0 голосов
/ 29 августа 2018

Я бы выбрал немного другой подход. Вы можете создавать свои перечисления как строковые перечисления:

export enum MyEnum {
    A = "Australia",
    D = "Germany"
}

Так, когда вы отрендерите <>MyEnum.A</> Австралия будет визуализирована.

Затем вы можете установить enum-values ​​ и просто сделать что-то вроде:

const val = EnumValues.getNameFromValue(MyEnum, 'Australia')

Так что val = A и вы можете затем отправить его на свой бэкэнд.

Надеюсь, это поможет.

...