for (let i = 0; i < encodedSymbols.length; i++) {
decodedMessage += symbols[encodedSymbols[i]]
}
Ура!!! без подглядываний понимать начал, что к чему.
for (let i = 0; i < encodedSymbols.length; i++) {
decodedMessage += symbols[encodedSymbols[i]]
}
Ура!!! без подглядываний понимать начал, что к чему.
В том то и дело что не рассказывали в пройденном материале об этом) догадайся сам называется)
Тоже тут запнулся.
Хотел сделать сначала через цикл for (let i = 0; i < symbols.length; i++) {
// c доп проверкой через if внутри цикла
if ( encodedSymbols[i] == ? здесь должен был быть порядковый номер от symbols)
однако, как я понял, нельзя порядковый номер вычленить.
Отсюда условие через перебор массива encodedSymbols :
for (let i = 0; i < encodedSymbols.length; i++)
а вот как раз в массиве encodedSymbols у нас записаны числовые данные(порядковые номера) а значение по порядковому номеру мы можем получить:
из encodedSymbols извлекаем [i] и подставляем в symbols и получаем в первом случае symbols[18]
для простоты понимания можно было создать еще одну переменную например j которой мы бы присвоили значение encodedSymbols[i] которое равнялось бы соответствующей цифре в массиве.
let j = encodedSymbols[i] // первое значение в массиве это 18.
код проверяет что стоит в массиве symbols под 18 номером и выводит значение ‘C’ которое этому порядковому номеру соответствует.
И далее мы уже просто присваиваем это значение в decodedMessage через сложение с присвоением +=
decodedMessage += symbols[j]
}
дальше цикл срабатывает снова
Да, тут порой бывает. В решение никак не проглядывается пройденная тема. Хорошо что есть эта площадка где можно посмотреть, что и как другие сделали. Потом пережевывая ответ, постигать логику решения. Думаю, в этом тоже есть некий смысл. Порой помогает начать думать в правильном русле.
Огромное спасибо! Действительно все прояснилось, до этого задания как по маслу, а на этом испытании встрял. Понял, что нужно приравнять индексы, и по итогу, дальше вывода всех символов в консоль не продвинулся. А задача то оказалась, в 100500 раз проще, спасибо!
оказалось всё намного проще, чем я думала.
// Алфавит
let symbols = [‘А’, ‘Б’, ‘В’, ‘Г’, ‘Д’, ‘Е’, ‘Ё’, ‘Ж’, ‘З’, ‘И’, ‘Й’, ‘К’, ‘Л’, ‘М’, ‘Н’, ‘О’, ‘П’, ‘Р’, ‘С’, ‘Т’, ‘У’, ‘Ф’, ‘Х’, ‘Ц’, ‘Ч’, ‘Ш’, ‘Щ’, ‘Ъ’, ‘Ы’, ‘Ь’, ‘Э’, ‘Ю’, ‘Я’, ‘а’, ‘б’, ‘в’, ‘г’, ‘д’, ‘е’, ‘ё’, ‘ж’, ‘з’, ‘и’, ‘й’, ‘к’, ‘л’, ‘м’, ‘н’, ‘о’, ‘п’, ‘р’, ‘с’, ‘т’, ‘у’, ‘ф’, ‘х’, ‘ц’, ‘ч’, ‘ш’, ‘щ’, ‘ъ’, ‘ы’, ‘ь’, ‘э’, ‘ю’, ‘я’, ’ ', ‘.’, ‘,’, ‘—’, ‘!’];
// Закодированное сообщение
let encodedSymbols = [18, 38, 46, 62, 66, 50, 33, 41, 66, 49, 48, 38, 58, 62, 68, 66, 48, 37, 42, 47, 66, 50, 33, 41, 66, 49, 48, 51, 49, 42, 67];
// Раскодированное сообщение
let decodedMessage = ‘’;
for (let i = 0; i <= encodedSymbols.length - 1; i++) {
decodedMessage += symbols[encodedSymbols[i]];
}
console.log(decodedMessage);
спасибо огромное за подробное разъяснение!