javascript var/let

119
18 июня 2021, 18:40

я недавно начал изучать джс.
и вот возник такой вопрос.

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

Решение:

Решение через 2 if:

var lang = 'ru';
if (lang == 'ru') {
    var arr = ['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс'];
}
if (lang == 'en') {
    arr = ['mn', 'ts', 'wd', 'th', 'fr', 'st', 'sn'];
}
alert(arr);

нашел ответ в инете, но с var а вот с let не знаю как решить. хэлп
если пойму как сделать через иф, то понятно будет как сделать через свитч, а через массив уже сделал.

Answer 1

let "забывается" вне текущих {скобок}, поэтому его надо объявлять заранее, если он позже будет нужен в коде:

var lang = 'ru'; 
let arr; 
 
if (lang == 'ru') { 
  arr = ['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс']; 
} else if (lang == 'en') {  
  // с else, второе условие не будет лишний раз проверяться, если первое выполнилось 
  arr = ['mn', 'ts', 'wd', 'th', 'fr', 'st', 'sn']; 
} 
 
console.log(arr);

Это можно решить еще с помощью объекта:

let lang = 'ru'; 
 
let obj = { 
  ru: ['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс'], 
  en: ['mn', 'ts', 'wd', 'th', 'fr', 'st', 'sn'], 
} 
 
let arr = obj[ lang ]; 
 
console.log(arr);

READ ALSO
Вывод значения при создании класса в JS [дубликат]

Вывод значения при создании класса в JS [дубликат]

столкнулся с задачей и никак не могу сообразить как правильно реализовать класс

98
Добавление метода к переменной с помощью записи «через точку» создает в обьекте новое свойство?

Добавление метода к переменной с помощью записи «через точку» создает в обьекте новое свойство?

Насколько я понял запись через точку означает, что к объекту добавляем какое-то свойство с определенным значением:

86
Функция рандомного числа с исключением предыдущих результатов

Функция рандомного числа с исключением предыдущих результатов

Как написать функцию выбора рандомного числа, в которой исключались бы результаты предыдущих срабатываний? Создать отдельный массив с результатами...

92