Задать вопрос
bekingem
@bekingem
WEB-developer

Как решить задачу без применения if switch?

Переменная lang может принимать 2 значения: 'ru' 'en'.
Написать условия при котором в зависимости от значения lang будут выводится дни недели на русском или английском языке. Решите задачу через многомерный массив без ифов и switch.

Всю голову уже сломал. Как сделать условие без условия.....
  • Вопрос задан
  • 1599 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Надо сделать объект - ключами будут языки, значениями массивы дней недели:

const getDayName = (day, lang) => (({
  en: [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ],
  ru: [ 'Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота' ],
})[lang] || [])[day - (7 * Math.floor(day / 7))];


getDayName(5, 'en') // 'Friday'
getDayName(7, 'ru') // 'Воскресенье'
getDayName(-19, 'ru') // 'Вторник'
getDayName(4, 'fr') // undefined

А вообще, можно обойтись и без вспомогательной структуры данных:

const getDayName = (day, lang) =>
  new Date(2001, 0, ((day % 7) + 7) % 7).toLocaleString(lang, { weekday: 'long' });


getDayName(4, 'fr') // 'jeudi'
getDayName(36, 'de') // 'Montag'
Ответ написан
Комментировать
alams_stoyne
@alams_stoyne
Full Stack Developer - #PHP #CSS #JS #DB
var lang_array = [];
lang_array['ru'] = ['Пн','Вт','СР','Чт','Пт','Сб','Вс'];
lang_array['en'] = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
var lang = 'ru';
console.log(lang_array[lang]);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Syvvvus
@Syvvvus
Прхрамест
Как получить ответ, не задав вопрос?
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Используйте ассоциативный массив.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы