映射语言环境数组并将每个语言环境更改为语言名称

Map array of locales and change each locale to language name

使用 Next.js,我正在获取当前语言环境和一种语言的所有可用语言环境 selection 菜单:

const {cl, al} = useContext(LangContext);
// cl = "en-US"
// al = ["en-US", "de-DE"]

我把这个函数写到return完整的语言名称:

const clAlias = ()=> {
    if (cl === "en-US") { return "English" };
    if (cl === "de-DE") { return "Deutsch" };
}

现在我想映射 al ,但我想映射 ["English", "Deutsch"] 而不是 ["en-US", "de-DE"] 。它不仅看起来更好,而且使用户更容易 select 他们的语言。 最好的方法是什么?

对象怎么样。

const clAlias = {
  "en-US": "English",
  "de-DE": "Deutsch"
}
//...
al.map(x => clAlias[x])

您可以使用Array.from方法。它return新数组没有变化al

并且不要忘记在 clAlias() 中添加参数,例如 clAlias(cl)

const al = ["en-US", "de-DE"];
const clAlias = (cl) => {
  if (cl === "en-US") {
    return "English";
  }
  if (cl === "de-DE") {
    return "Deutsch";
  }
};

const answer = Array.from(al, (e) => clAlias(e));
console.log(answer);