@HellForce

Как правильно решить данную задачу?

Пусть теперь в переменной lang хранится язык (она принимает одно из значений или 'ru', или 'en' - либо то, либо то), а в переменной day - номер дня. Выведите словом день недели, соответствующий переменным lang и day. То есть: если, к примеру, lang = 'ru' и day = 3 - то выведем 'среда'.

Перепробовал все, у меня уже истерика, перепробовал кучу вариантов, это последний вариант и я знаю, что он не правильный. Помогите, где ошибки. Перепробовал все способы, что пришли в голову.

const lang= {
'ru':['Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье'],
'en':['M','Tu','Wed','Td','Fri','Sat','San'],
'day':['1','2','3','4','5','6','7'],
};

lang['ru'][0]==lang['day'][0];
lang['ru'][1]==lang['day'][1];
lang['ru'][2]==lang['day'][2];
lang['ru'][3]==lang['day'][3];
lang['ru'][4]==lang['day'][4];
lang['ru'][5]==lang['day'][5];
lang['ru'][6]==lang['day'][6];

lang['en'][0]=='day'[0];
lang['en'][1]=='day'[1];
lang['en'][2]=='day'[2];
lang['en'][3]=='day'[3];
lang['en'][4]=='day'[4];
lang['en'][5]=='day'[5];
lang['en'][6]=='day'[6];

console.log(lang['ru'],day[3]);
  • Вопрос задан
  • 3188 просмотров
Решения вопроса 2
wapster92
@wapster92 Куратор тега JavaScript
const days= {
'ru':['Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье'],
'en':['M','Tu','Wed','Td','Fri','Sat','San']
};

const getDay = (lang, num) => {
  return days[lang][num - 1]
}

console.log(getDay('en', 3))
Ответ написан
const lang = {  // Массив с днями недели
    'ru':['Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье'],
    'en':['M','Tu','Wed','Td','Fri','Sat','San'],
  };

  function getDayWeek(language, day) { //Функция которая определяет день недели
    return lang[language][day - 1];
  }

console.log(getDayWeek('en', 5)); // Результат в консоль
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@queenofcaps
Подскажите, не подразумевает ли автор задачника решение без использования функций, а что-то вроде этого? Или я неправильно понимаю саму задачу?

var obj = {'ru':{'1':'Понедельник','2':'Вторник','3':'Среда','4':'Четверг','5':'Пятница','6':'Суббота','7':'Воскресенье'},
'en':{'1':'Monday','2': 'Tuesday','3': 'Wednesday','4': 'Thursdey','5': 'Friday','6': 'Saturday','7': 'Sunday'}
};
var lang = 'ru';
var day = '3';
alert(obj[lang][day]);
Ответ написан
@mixamonakh
Ответ queenofcaps навел меня на мысль, что можно сделать вот так:

let lang = prompt( 'ru или en', '' );
let day = prompt( 'А день недели цифрой ?', '' );

let obj = {ru: {1: 'Понедельник', 2: 'Вторник', 3: 'Среда', 4: 'Четверг', 5: 'Пятница', 6: 'Суббота', 7: 'Воскресенье'}, en: {1: 'Monday', 2: 'Tuesday', 3: 'Wednesday', 4: 'Thursday', 5: 'Friday', 6: 'Saturday', 7: 'Sunday'}};


alert( obj[lang][day] );


P.S. я сам решаю задачки из этого учебника ))
Ответ написан
Комментировать
@Karpion
Самый тупой способ:
Запишем в один массив сначала английские дни недели, потом русские.
Преобразуем переменную lang в число по правилу: en=0, ru=1.
Сложим это число с номером дня недели.
Дальше рассказывать?

Второй вариант:
Создадим два массива: ru и en .
Создадим хаш-массив с индексами 'ru' и 'en', а значениями - ссылками на те два массива.
Дальше рассказывать?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы