哪个集合可用于在两个方向上映射键值对?



我正在尝试设置国家/地区代码的集合。由于我的前端显示它,因此我想显示"奥地利",但是当将其发送到后端时,我只想发送"A",因为这就是它的存储方式。理想情况下,它看起来像这样:

CountryCodes = {
A: "Austria",
D: "Germany",
}
console.log(CountryCodes["A"]); // -> "Austria"
console.log(CountryCodes["Austria"]); // -> "A"

我以为我可以使用枚举,因为

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

成为

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

当从打字稿转译为 JavaScript 时。但如果枚举的值不是数字,则情况并非如此。

我不确定要使用哪种集合,因为我不想为每个国家/地区代码添加两个 keyValuePair。您知道如何解决这样的问题吗?我在这里错过了一个非常明显的解决方案吗?

我会采取稍微不同的方法。您可以将枚举创建为字符串枚举:

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

因此,当您渲染<>MyEnum.A</>澳大利亚时,将被渲染。

然后,您可以安装枚举值并简单地执行以下操作:

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

这样val = A,您就可以将其发送到后端。

希望这有帮助。

最新更新