Решение «Начинающий дешифровщик» через reduce

// Раскодированное сообщение
var decodedMessage = '';
var newArr = [];

encodedMessage.forEach((item, i) => {
  symbols.reduce((acc, current) => {   
    if (symbols.indexOf(current) === encodedMessage[i]) newArr.push(current);     
  }, newArr);  
});

decodedMessage = newArr.join('');

Ужасное решение!
Reduce - должен был упростить читаемость кода, а у вас еще хуже, чем на циклах . И для чего тут forEach? И зачем вам в редьюсе аккумулятор, если он никак не используется?

Вот адекватное решение с использование функции высшего порядка

var decodedMessage = encodedMessage.map(item => symbols[item]).join('');

С map решение более элегантное, согласен.
forEach ещё использовал, т.к. решение отталкивалось от перебора двух массивов с использованием indexOf

c редьюсом такое же элегантное

var decodedMessage = encodedMessage.reduce((acc, item) => `${acc}${symbols[item]}`, '');

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

1 симпатия

знаний тут нет абсолютно
есть использование готовых методов без понимания как они работают. Для практики вообще полезно написать самому функции map, reduce и filter, чтобы такой бред как выше не выдавать

Гражданин, откуда столько злобы? У каждого своя программа, чего вы всех под свои рамки забиваете. Тут все обучаются для себя, а не для публики. И если увидели другое решение или ошибки - есть шанс учиться и на них.

1 симпатия

Не приходила в голову мысль что вы новичков с толку сбиваете? А неправильными решениями еще и учите плохому.

Тут все новички и все выкладывают код чтобы узнать его недостатки или же поделиться оптимальным решением. Не приходила такая мысль?)
Испытания появились не сразу на сайте, кто-то успел пройти главу чуть ранее и потом вернуться для этих тасков уже позже с чуть большим знанием. Как-то глупо критиковать людей за написание кода как они это видят.

1 симпатия