映射语言环境数组并将每个语言环境更改为语言名称
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);
使用 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);