Используя Next.js, я получаю текущую локаль и все доступные локали для меню выбора языка:
const {cl, al} = useContext(LangContext);
// cl = "en-US"
// al = ["en-US", "de-DE"]
Я написал эту функцию, чтобы вернуть полное имя языка:
const clAlias = ()=> {
if (cl === "en-US") { return "English" };
if (cl === "de-DE") { return "Deutsch" };
}
Теперь я хочу составить карту al , но вместо ["en-US", "de-DE"] хочу иметь ["English", "Deutsch"]. Это не только выглядит лучше, но и упрощает пользователю выбор языка.
Как лучше всего это сделать?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Как насчет объекта.
const clAlias = {
"en-US": "English",
"de-DE": "Deutsch"
}
//...
al.map(x => clAlias[x])
Вы можете использовать метод Массив.от. Он возвращает новый массив без изменений 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.info(answer);